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

来源:2-3 kotlin数据运算(一)

慕设计532529

2022-05-03 18:10

这里面的逻辑是什么?
写回答 关注

1回答

  • 任e逍遥
    2024-05-12 07:40:12

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

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

2021Android从零入门到实战(Kotlin版)

移动端大牛带你快速入门Android

18919 学习 · 74 问题

查看课程

相似问题