Re: consejo tipo de variable para manejar dinero
Felipe DOMINGUEZ <[email protected]> Thu, 7 Oct 2010 16:43:36 +0200
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
--000e0cd32778460bba049207eb99 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Hola Yo lo de redondear al final no lo tengo claro. Luego al final no me cuadran las facturas. por ejemplo : un producto cuyo precio es 5.27, con el 8% de IVA queda 5.691= 6 si se compran 4 productos del mismo valor queda as=ED: 5.6916 * 4 =3D 22.7676 rondeado a dos decimales al final 22.77 Si se redondea antes de hacer las operaciones: 5.69 * 4 =3D 22.76 Las facturas suelen estar hecha con dos decimales, con lo que aparecer=EDa as=ED: Producto A =3D 5.27 + 0.42 (IVA) =3D 5.69 Producto B - 5.27 + 0.42 (IVA) =3D 5.69 Producto C - 5.27 + 0.42 (IVA) =3D 5.69 Producto D - 5.27 + 0.42 (IVA) =3D 5.69 Total : 22.77 ( redondeando al final) pero si se suma todo sale 22.76 Creo que hay un algoritmo oficial para este tipo de operaciones, si alguien la sabe agradecer=EDa lo dijesen. Supongo que alguien que trabaje en alg=FA= n banco lo ha de tener claro. Saludos. 2010/10/7 Geckko <[email protected]> > > > El rounding lo har=EDa con 4 decimales y s=F3lo al final del todo redonde= as a > dos. > > El 07/10/10 16:10, ramirex escribi=F3: > > > > ok.. > > justo lo que estaba pensando, la variable BigDecimal es la mejor opcion > > 2010/10/7 Felipe DOMINGUEZ <[email protected]> > >> >> >> Hola. >> >> Yo usaria BigDecimal con una precisi=F3n de 2 d=EDgitos (MathContext) y = con >> RoundingMode.HALF_EVEN,* * aunque el RoundingMode lo consultar=EDa con >> alguien de finanzas. >> >> en cualquier caso crear=EDa mi propia clase donde pondr=EDa el BigDecima= l y la >> moneda que se usa ( asumo que no son s=F3lo Euros) >> >> >> Saludos >> >> Felipe >> >> -- >> Jam=F3n Ib=E9rico de Bellota ( 3 a=F1os) >> Entregas Gratuitas Espa=F1a, 15=80 EU. >> www.TuJamonEnCasa.com <http://www.tujamonencasa.com/> >> >> <http://www.tujamonencasa.com/> >> >> >> 2010/10/7 ramirex <[email protected]> >> >> >>> >>> saludos. >>> >>> quiero saber que tipo de variable es el mejor para manejo de dinero. >>> >>> gracias por los aportes >>> >>> -- >>> >> >> >> > > > -- > -------------------------------------------------------- > ----------------------- ramirex --------------------- > [powered by Linux] > --------------------------------------------------------- > weblog: > http://softwarelibre.org.bo/ramirex/weblog/ > > > GPG Key ID: 2C9D8099 > > >=20=20 > --=20 Jam=F3n Ib=E9rico de Bellota ( 3 a=F1os) Entregas Gratuitas Espa=F1a, 15=80 EU. www.TuJamonEnCasa.com <http://www.tujamonencasa.com> --000e0cd32778460bba049207eb99 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm= l4/strict.dtd"> <html> <head> </head> <body style=3D"background-color: #fff;"> <span style=3D"display:none"> </span> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id=3D"ygrp-mlmsg" style=3D"position:relative;"> <div id=3D"ygrp-msg" style=3D"z-index: 1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id=3D"ygrp-text" > =20=20=20=20=20=20 =20=20=20=20=20=20 <p>Hola<br><br>Yo lo de redondear=A0 al final no lo tengo claro.=A0 L= uego al final no me cuadran las facturas. <br><br>por ejemplo : un producto= cuyo precio es 5.27, con el 8% de IVA queda 5.6916<br><br>si se compran 4 = productos del mismo valor queda as=ED: <br> <br>5.6916 * 4=A0 =3D 22.7676=A0 rondeado a dos decimales al final=A0 22.77= <br><br>Si se redondea antes de hacer las operaciones:<br><br>5.69 * 4 =3D = 22.76=A0 <br><br>Las facturas suelen estar hecha con dos decimales, con lo = que aparecer=EDa as=ED:<br> <br>Producto A=A0=A0=A0=A0 =3D 5.27=A0 + 0.42 (IVA) =3D =A0 5.69<br>Product= o B =A0=A0=A0 -=A0 5.27=A0 + 0.42 (IVA) =3D =A0 5.69<br>Producto C =A0=A0= =A0 -=A0 5.27=A0 + 0.42 (IVA) =3D =A0 5.69<br>Producto D =A0=A0=A0 -=A0 5.2= 7=A0 + 0.42 (IVA) =3D =A0 5.69<br>=A0<br>Total=A0=A0=A0 : 22.77=A0 ( redond= eando al final) <br> <br>pero si se suma todo sale 22.76 <br><br>Creo que hay un algoritmo ofici= al para este tipo de operaciones, si alguien la sabe agradecer=EDa lo dijes= en. Supongo que alguien que trabaje en alg=FAn banco lo ha de tener claro.= =A0 <br> <br>Saludos.<br><br><br><br><br><div class=3D"gmail_quote">2010/10/7 Geckko= <span dir=3D"ltr"><<a href=3D"mailto:[email protected]">geckko80@gmail= .com</a>></span><br><blockquote class=3D"gmail_quote" style=3D"border-le= ft: 1px solid rgb(204, 204, 204);"> <div style=3D"background-color: rgb(255, 255, 255);"> <span>=A0</span> <div> <div> <div> =20=20=20=20=20=20 =20=20=20=20=20=20 <p> El rounding lo har=EDa con 4 decimales y s=F3lo al final del todo redondeas a dos.<br> <br> El 07/10/10 16:10, ramirex escribi=F3: </p><div class=3D"im"><blockquote type=3D"cite"><span>=A0</span> <div> <p>ok..</p> <div><br> </div> <div>justo lo que estaba pensando, la variable BigDecimal es la mejor opcion<br> <br> <div class=3D"gmail_quote">2010/10/7 Felipe DOMINGUEZ <span dir=3D"ltr">&= lt;<a href=3D"mailto:[email protected]" target=3D"_blank">felipe.d= [email protected]</a>></span><br> <blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204= , 204, 204);"> <div style=3D"background-color: rgb(255, 255, 255);"><span>=A0</span> <div> <div> <div> <p>Hola.<br> <br> Yo usaria BigDecimal con una precisi=F3n de 2 d=EDgitos (MathContext) y con RoundingMode.HALF_EVEN,<b> </b>=A0 aunque el RoundingMode lo consultar=EDa con alguien de finanzas. <br> <br> en cualquier caso crear=EDa mi propia clase donde pondr=EDa el BigDecimal y la moneda que se usa ( asumo que no son s=F3lo Euros) <br> <br> <br> Saludos<br> <br> Felipe<br> <br> -- <br> Jam=F3n Ib=E9rico de Bellota ( 3 a=F1os)<br> Entregas Gratuitas Espa=F1a, 15=80 EU.<br> <a href=3D"http://www.tujamonencasa.com/" target=3D"_blank">www.TuJamon= EnCasa.com</a><br> <br> <a href=3D"http://www.tujamonencasa.com/" target=3D"_blank"><img src></= a> <br> <br> <br> </p> <div class=3D"gmail_quote">2010/10/7 ramirex <span dir=3D"ltr"><<a h= ref=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>>= ;</span> <div><br> <blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(2= 04, 204, 204);"> <div style=3D"background-color: rgb(255, 255, 255);"><span>=A0</span> <div> <div> <div> <p>saludos.<br> <br> quiero saber que tipo de variable es el mejor para manejo de dinero.<br> <br> gracias por los aportes<br> <br> -- <br> </p> </div> </div> </div> </div> </blockquote> </div> </div> <br> <br> </div> </div> </div> </div> </blockquote> </div> <br> <br clear=3D"all"> <br> -- <br> --------------------------------------------------------<br> ----------------------- ramirex ---------------------<br> =A0 =A0 =A0 =A0 =A0 =A0 [powered by Linux]<br> ---------------------------------------------------------<br> weblog:<br> =A0 =A0 =A0 <a href=3D"http://softwarelibre.org.bo/ramirex/weblog/" target= =3D"_blank">http://softwarelibre.org.bo/ramirex/weblog/</a><br> <br> <br> GPG Key ID:=A0 2C9D8099<br> </div> </div> </blockquote> <br> </div> </div> =20=20=20=20=20 =20=20=20=20 <div style=3D"color: rgb(255, 255, 255);"></div> </div> =20=20 </div></div></blockquote></div><br><br clear=3D"all"><br>-- <br>Jam=F3n Ib= =E9rico de Bellota ( 3 a=F1os)<br>Entregas Gratuitas Espa=F1a, 15=80 EU.<br= ><a href=3D"http://www.TuJamonEnCasa.com" target=3D"_blank">www.TuJamonEnCa= sa.com</a><br><br><a href=3D"http://www.tujamonencasa.com" target=3D"_blank= "><img src=3D"http://www.tujamonencasa.com/images/mail/rotuloprincipal_nail= .jpg"></a>=A0<br> <br> </p> </div> =20=20=20=20=20 <!--~-|**|PrettyHtmlStart|**|-~--> <div style=3D"color: #fff; height: 0;">__._,_.___</div> =20=20=20=20=20=20=20=20 =20=20 =20=20=20 <div id=3D"ygrp-actbar" style=3D"clear: both; margin-bottom: 10px; whit= e-space: nowrap; color: #666; padding-top: 15px;"> <div> <a href=3D"mailto:[email protected]?subject=3DRe: [javaSpa= in] consejo tipo de variable para manejar dinero" style=3D"margin-right: 0;= padding-right: 0;"> Responder a <span style=3D"font-weight: 700;">remitente</span></a> | <a href=3D"mailto:[email protected]?subject=3DRe: [javaSpai= n] consejo tipo de variable para manejar dinero"> Responder a <span style=3D"font-weight: 700;">grupo</span></a> | <a href=3D"http://es.groups.yahoo.com/group/javaSpain/post;_ylc= =3DX3oDMTJxZG5oYzlyBF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk2= MDU2BG1zZ0lkAzI1NjcxBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTI4NjQ2MjYxOQ--?act=3D= reply&messageNum=3D25671">Responder <span style=3D"font-weight: 700;">media= nte la Web</span></a> | <a href=3D"http://es.groups.yahoo.com/group/javaSpain/post;_yl= c=3DX3oDMTJlZjF1NGpkBF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk= 2MDU2BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI4NjQ2MjYxOQ--" style=3D"font-weight= : 700;">Crear un tema nuevo</a> </div> <a href=3D"http://es.groups.yahoo.com/group/javaSpain/messa= ge/25667;_ylc=3DX3oDMTM2OGUzZ201BF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3B= JZAMxNjYwMzk2MDU2BG1zZ0lkAzI1NjcxBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTI4NjQ2Mj= YxOQR0cGNJZAMyNTY2Nw--">Mensajes con este tema</a> (<span style=3D"font-weight: 700;">5</span>) </div>=20 <!------- Start Nav Bar ------> <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-vital" style=3D"background-color: #e0ecee; font-family: Ver= dana; font-size: 10px; margin-bottom: 10px; padding: 10px;"> <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-tran= sform: uppercase; ">Actividad reciente:</span> <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: inl= ine;"> </ul> =20=20=20=20 <div style=3D"clear: both; padding-top: 2px; color: #1e66ae;"> <a href=3D"http://es.groups.yahoo.com/group/javaSpain;_ylc=3DX3oDMTJlYj= EyN3BpBF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk2MDU2BHNlYwN2d= GwEc2xrA3ZnaHAEc3RpbWUDMTI4NjQ2MjYxOQ--" style=3D"text-decoration: none;">V= isita tu grupo</a> </div> </div> <div id=3D"ygrp-grfd" style=3D"font-family: Verdana; font-size: 12px;= padding: 15px 0;"> =20=20=20=20=20=20 <!-- |**|begin egp html banner|**| --> Para cancelar su subscripci=F3n a este grupo, env=EDe un mensaje de c= orreo electr=F3nico a:<BR> [email protected]<BR> <BR> =20=20=20=20=20=20 <!-- |**|end egp html banner|**| --> </div> =20=20 <div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p= x; padding: 0 2px 0 0; clear: both;"> <a href=3D"http://es.groups.yahoo.com/;_ylc=3DX3oDMTJkZDdlb2c5BF9TAzk3NDk= wNDYxBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk2MDU2BHNlYwNmdHIEc2xrA2dmcARzdG= ltZQMxMjg2NDYyNjIw" style=3D"float: left;"><img src=3D"http://l.yimg.com/a/= i/us/yg/logo/es.gif" height=3D"19" width=3D"141" alt=3D"Yahoo! Grupos" styl= e=3D"border: 0;"/></a> <div style=3D"color: #747575; float: right;">Cambiar a: <a href=3D"mailto= :[email protected]?subject=3DCambiar Formato de Env=C3= =ADo: Tradicional" style=3D"text-decoration: none;">Solo Texto</a>, <a href= =3D"mailto:[email protected]?subject=3DEnv=C3=ADo de Correo:= Rese=C3=B1a" class=3D"margin-rt" style=3D"text-decoration: none;">Rese\xc3= \xb1a Diaria</a> • <a href=3D"mailto:javaSpain-unsubscribe@yahoogroups= .com?subject=3DCancelar suscripci=F3n" style=3D"text-decoration: none;">Can= celar suscripci=F3n</a> • <a href=3D"http://es.docs.yahoo.com/info/uto= s.html" style=3D"text-decoration: none;">Condiciones de uso</a></div> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m= argin:0 0 25px 0; background: #fff;"> <!-- Start Recommendations --> <div id=3D"ygrp-reco"> </div> <!-- End Recommendations --> </div> <!-- |**|end egp html banner|**| --> <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src=3D"http://geo.yahoo.com/serv?s=3D97490463/grpId=3D1941345/grpspI= d=3D1660396056/msgId=3D25671/stime=3D1286462619/nc1=3D1/nc2=3D2/nc3=3D3" wi= dth=3D"1" height=3D"1"> <br> <div style=3D"color: #fff; height: 0;">__,_._,___</div> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type=3D"text/css"> <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial; margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-mkp .ad p { margin: 0; } #ygrp-mkp .ad a { color: #0000ff; text-decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad { margin-bottom: 10px; padding: 0 0; } a { color: #1e66ae; } #actions { font-family: Verdana; font-size: 11px; padding: 10px 0; } #activity { background-color: #e0ecee; float: left; font-family: Verdana; font-size: 10px; padding: 10px; } #activity span { font-weight: 700; } #activity span:first-child { text-transform: uppercase; } #activity span a { color: #5085b6; text-decoration: none; } #activity span span { color: #ff7900; } #activity span .underline { text-decoration: underline; } .attach { clear: both; display: table; font-family: Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach div a { text-decoration: none; } .attach img { border: none; padding-right: 5px; } .attach label { display: block; margin-bottom: 5px; } .attach label a { text-decoration: none; } =20=20 blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-size: 13px; font-weight: 700; } .bold a { text-decoration: none; } dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p span { margin-right: 10px; font-family: Verdana; font-weight: 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-table div div a { text-decoration: none; } div.attach-table { width: 400px; } div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi= le-title a:visited { text-decoration: none; } div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div= .photo-title a:visited { text-decoration: none; } div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family: Verdana; font-size: 10px; font-weight: normal; } .green { color: #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; } #photos div { float: left; width: 72px; } #photos div div { border: 1px solid #666666; height: 62px; overflow: hidden; width: 62px; } #photos div label { color: #666666; font-size: 10px; overflow: hidden; text-align: center; white-space: nowrap; width: 64px; } #reco-category { font-size: 77%; } #reco-desc { font-size: 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /* border-right: 0px solid #000;*/ margin-right: 2px; padding-right: 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial, helvetica,clean, sans-serif; *font-size: small; *font: x-small; } #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg select, input, textarea { font: 99% Arial, Helvetica, clean, sans-serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo { padding-bottom: 10px; } #ygrp-mlmsg a { color: #1E66AE; } #ygrp-msg p a { font-family: Verdana; } #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; } #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li { font-size: 77%; list-style-type: square; padding: 6px 0; }=20 #ygrp-sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-right: none !important;=20 }=20 --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html> <!-- end group email --> --000e0cd32778460bba049207eb99--