Re: consejo tipo de variable para manejar dinero
ramirex <[email protected]> Thu, 7 Oct 2010 11:29:41 -0400
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
--001636ed68702124500492089062 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Seria bueno tener claro esto de los redondeos, por que al final estamos hablando de dinero y eso si es delicado.. una cosa mas, reci=E9n me di cuenta que e BigDecimal no funciona sobre GWT = :( ni modo a usar float. 2010/10/7 Felipe DOMINGUEZ <[email protected]> > > > 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.6916 > > 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=ED= a > 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 algui= en > la sabe agradecer=EDa lo dijesen. Supongo que alguien que trabaje en alg= =FAn > 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 redond= eas 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 BigDecim= al 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 >> >> >> > > > -- > Jam=F3n Ib=E9rico de Bellota ( 3 a=F1os) > Entregas Gratuitas Espa=F1a, 15=80 EU. > www.TuJamonEnCasa.com > > <http://www.tujamonencasa.com> > >=20=20 > --=20 -------------------------------------------------------- ----------------------- ramirex --------------------- [powered by Linux] --------------------------------------------------------- weblog: http://softwarelibre.org.bo/ramirex/weblog/ GPG Key ID: 2C9D8099 --001636ed68702124500492089062 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>Seria bueno tener claro esto de los redondeos, por que al final es= tamos hablando de dinero y eso si es delicado..<div><br></div><div>una cosa= mas,=A0reci=E9n=A0me di cuenta que e BigDecimal no funciona sobre GWT :(</= div><div>ni modo a usar float.<br> <br><div class=3D"gmail_quote">2010/10/7 Felipe DOMINGUEZ <span dir=3D"ltr"= ><<a href=3D"mailto:[email protected]">[email protected]= om</a>></span><br><blockquote class=3D"gmail_quote" style=3D"border-left= :1px #ccc solid;"> <div style=3D"background-color:#fff;"> <span>=A0</span> <div> <div> <div> =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></p><div class=3D"gmail_quote">2010/10/7 Ge= ckko <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target=3D"= _blank">[email protected]</a>></span><div><div></div><div class=3D"h5">= <br><blockquote class=3D"gmail_quote" style=3D"border-left:1px solid rgb(20= 4, 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><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></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(20= 4, 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></div></div><div><div></div><div class=3D"h5= "><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.TuJamon= EnCasa.com" target=3D"_blank">www.TuJamonEnCasa.com</a><br> <br><a href=3D"http://www.tujamonencasa.com" target=3D"_blank"><img></a>=A0= <br> <br> </div></div><p></p> </div> =20=20=20=20=20 =20=20=20=20 <div style=3D"color:#fff;"></div> </div> =20=20 </div></div></blockquote></div><br><br clear=3D"all"><br>-- <br>-----------= ---------------------------------------------<br>----------------------- ra= mirex ---------------------<br>=A0 =A0 =A0 =A0 =A0 =A0 [powered by Linux]<b= r>---------------------------------------------------------<br> weblog:<br>=A0 =A0 =A0 <a href=3D"http://softwarelibre.org.bo/ramirex/weblo= g/">http://softwarelibre.org.bo/ramirex/weblog/</a><br><br><br>GPG Key ID:= =A0 2C9D8099<br> </div> </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: [javaSpain] conse= jo 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= =3DX3oDMTJxN3NyaWNoBF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk2= MDU2BG1zZ0lkAzI1NjcyBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTI4NjQ2NTM5NQ--?act=3D= reply&messageNum=3D25672">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=3DX3oDMTJlazRzZTd0BF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk= 2MDU2BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI4NjQ2NTM5NQ--" 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=3DX3oDMTM2cG50anBjBF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3B= JZAMxNjYwMzk2MDU2BG1zZ0lkAzI1NjcyBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTI4NjQ2NT= M5NQR0cGNJZAMyNTY2Nw--">Mensajes con este tema</a> (<span style=3D"font-weight: 700;">6</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=3DX3oDMTJlOX= FiMmFwBF9TAzk3NDkwNDYzBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk2MDU2BHNlYwN2d= GwEc2xrA3ZnaHAEc3RpbWUDMTI4NjQ2NTM5NA--" 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=3DX3oDMTJkNGk2NXZ1BF9TAzk3NDk= wNDYxBGdycElkAzE5NDEzNDUEZ3Jwc3BJZAMxNjYwMzk2MDU2BHNlYwNmdHIEc2xrA2dmcARzdG= ltZQMxMjg2NDY1Mzk1" 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=3D25672/stime=3D1286465395/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 --> --001636ed68702124500492089062--