为了账号安全,请及时绑定邮箱和手机立即绑定

float类型的小数点6位后数字并不是单纯的四舍五入,例如3.1415924444会变成3.1415925 3.141592222会变成3.1415923

这里面的逻辑是什么?

正在回答

1 回答

说小数点后6位会被自动舍去其实是不对的。因为这个限制不来源于算法,而来源于32位浮点精度的计算机限制。float大概可以精确7位数字(小数点前的位数+小数点后的位数),后面的数字是不精确的,而且是按照二进制舍入的,不是按照十进制。

如果你做科学计算,最好直接用double,我之前用float就造成了微小误差的累积

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

float类型的小数点6位后数字并不是单纯的四舍五入,例如3.1415924444会变成3.1415925 3.141592222会变成3.1415923

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信