该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-24
hatedance 写道 这不是语言的问题,这是计算机cpu最终采用2进制的问题。
|
|
返回顶楼 | |
发表时间:2011-01-24
lanbingfeihan 写道 steafler 写道 浮点数不是这样比较的
是的, double类型不能这么进行比较。应该是数据的精度问题。 能不能详细说下,怎么回事!谢谢 |
|
返回顶楼 | |
发表时间:2011-01-24
貌似有书上推荐说涉及到钱都要自己写个money类那个是什么情况?
|
|
返回顶楼 | |
发表时间:2011-01-24
你学JAVA了,你还能问出 “为神马”??
|
|
返回顶楼 | |
发表时间:2011-01-26
wu_quanyin 写道 float doule都不能用于加减乘除运算,会得到一些奇怪的结果.,用BigDecimal
受教了 |
|
返回顶楼 | |
发表时间:2011-01-27
double也不是不能用...只要确知结果的误差小于所需的最小精度就行。现代CPU算double可比BigDecimal快得多,特别是除法。
一概用BigDecimal,说得难听点,纯粹是用一个偷懒(分析数据的具体情况)超过另一个更偷懒(不注意精度问题)。 账目只有RMB/USD的基本可以放心用。当然要记得用差数代替比较。 真正算帐讨厌的是汇率和分摊之类形成的舍入误差处理,呵呵。 |
|
返回顶楼 | |