为什么所有的语言都有小数精度问题,比如说:
double result = 1.0 - 0.9
,其结果是0.09999999999999998
。这是因为在二进制的世界里也有无线循环小数,在十进制中都无法表示1/3
。那凭什么要求二进制能够表示1/10
呢?如果你一开始接受的都是二进制教育,那么这个时候你会疑惑“为什么十进制会有精度问题?” 在二进制中,1/2
、1/4
、3/4
、1/8
等等都是有限的,这些数没有精度问题。
为什么所有的语言都有小数精度问题,比如说:
double result = 1.0 - 0.9
,其结果是0.09999999999999998
。这是因为在二进制的世界里也有无线循环小数,在十进制中都无法表示1/3
。那凭什么要求二进制能够表示1/10
呢?如果你一开始接受的都是二进制教育,那么这个时候你会疑惑“为什么十进制会有精度问题?” 在二进制中,1/2
、1/4
、3/4
、1/8
等等都是有限的,这些数没有精度问题。
本文标题:为什么会有小数精度问题
本文链接:https://www.haomeiwen.com/subject/oxepoftx.html
网友评论