程序语言浮点数运算问题

在程序语言当中,一些数是无法通过浮点数来精确表示的,如 0.1 * 3,可能你会预料到得到的结果是0.3,然而现实很残酷,你会得到如下的这个答案

0.30000000000000004,浮点数运算是根据二进制算法来进行计算的,所以并不某种语言特有的结果。

当出现上述情况的时候,一般情况下,我们可以通过程序语言强制转换、保留有效小数点等措施来去除末尾的多个0,在一般情况下,是不会影响程序的正常执行的。

当然,如果这些类似于银行这样的系统当中,一丝一毫的差错都是不能有的,所以,这个时候(以java说明),应该使用BigDecimal类型来替代基本类型,从BigDecimal的源代码中可以知道,从构造参数众传入的数一定要是字符串,否则仍然会以基本类型来处理!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容