为什么float类型30000000.0f+3.0f的结果仍然是30000000.0f
1. 首先看问题结果
是不是结果还是30000000.0f 而不是30000001.0f
2. 分析原因
这是一个典型的大数吃小数问题,原因需要从浮点数的计算机实现说起
对于float,是4字节,共32个bit,那么怎么用这32位来表示float
首先最容易想到的是 浮点数的每位十进制数用4bit来表示,比如 999999.99 这样每个9用1001表示,那么在32bit上的布局是下面这样: 100110011001100110011001.10011001 这样的表示数据范...
原创
2020-06-21 12:38:25 ·
519 阅读 ·
0 评论