我有一些有趣的好奇心,计算机如何计算浮点数 0.1?
在 wolfram alpha 中,查询“0.1 到二进制”得到二进制浮点数。
但是 c++ 编译器(xcode)精确计算 0.1。
这怎么可能?
问问题
176 次
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 回答