标签:
谜题一:数据运算的小问题
1)当问题需要精确答案的时候,要避免使用float 还有double类型,要使用int long BigDecimal类型。这是因为在java虚拟中运算的时候并不是所有的小数都可以表示成二进制的浮点数的精确表示。因此在做商业计算的时候(类似银行计算的时候)推荐使用BigDecimal 当然构造的时候也不要传递一个double类型 用字符串代替。
2)常整除。对于多个数相乘的过程:long x =24*60*60*1000*1000 在这个运算的过程中会造成int 类型的溢出,因为java不具有目标确定类型的特性所以在两个int类型的数相乘的话还是会得到一个int类型 因此在最后才会才会转为long 但是在此时的运算的过程中早已溢出 所以得到的结果会不准确。解决办法 第一个操作数为目的类型。
标签:
原文地址:http://www.cnblogs.com/prctice/p/4338978.html