-5

我有一些有趣的好奇心,计算机如何计算浮点数 0.1?
在 wolfram alpha 中,查询“0.1 到二进制”得到二进制浮点数。
但是 c++ 编译器(xcode)精确计算 0.1。
这怎么可能?

4

1 回答 1

3

由于四舍五入,您可以从有限二进制表示中得到原始十进制。如果您尝试以更高的精度打印数字,它将不会正好是 0.1。工作示例

#include <iostream>
#include <iomanip>
using namespace std; 

int main() {
    float f = 0.1f;
    cout << f << endl;
    cout << setprecision(10) << f << endl;
}
于 2013-10-03T07:41:23.270 回答