求教JAVA的浮点精度问题

一路狂奔 03-09-16

我用double变量存钱的数量,比如:10块钱,但是经过加减乘除运算以后,这10块钱的小数位就变了,变成10.000001,很烦人
请问有什么办法能够保证所有的钱数只保留2位小数,整数也变成10.00

无道
2003-09-16 13:37

double value=(double)10.0000001;
java.math.BigDecimal bd=new java.math.BigDecimal(value).setScale(2,java.math.BigDecimal.ROUND_HALF_UP );

AreYouOK?
2003-09-17 12:06

以前写过一篇文章关于这个的
http://www.csdn.net/develop/read_article.asp?id=17400
不过还是比较麻烦,java里面有专门的货币类型就好了