近日在开发项目的过程中需要显示收益额,首先考虑的是使用浮点数表示金额,奈何,将从服务端返回的有1位精度的数值赋值给本地的float型变量后,数值变了(类似0.9变为0.8999999999999999)。究其原因浮点数是采用二进制系统表示,所以无法精确的表示类似1/10。解决方案使用BigDecimal类进行处理。
备注:
需要精确数值(如金融类)不宜使用float类型保存。
近日在开发项目的过程中需要显示收益额,首先考虑的是使用浮点数表示金额,奈何,将从服务端返回的有1位精度的数值赋值给本地的float型变量后,数值变了(类似0.9变为0.8999999999999999)。究其原因浮点数是采用二进制系统表示,所以无法精确的表示类似1/10。解决方案使用BigDecimal类进行处理。
备注:
需要精确数值(如金融类)不宜使用float类型保存。