int base = 12;
double number = 12.2112;
double c = number - base;
//// c=0.211199999999999983
这是c ++代码, 我怎么能得到结果:c = 0.2112,
答案 0 :(得分:0)
0.2112无法用浮点表示法精确表示:https://en.wikipedia.org/wiki/Floating_point#Accuracy_problems
如果对您来说非常重要,那么0.2112应该完全代表,那么通常的解决方案看起来有点像这样:
int base = 120000;
int number = 122112;
int c = number - base;
cout << "Value of c: " << (c / 10000.0) << endl;
但是,要知道我们在这里所做的是实现定点数。如果你的实现中需要定点数,那么研究和实现一个完整的定点课可能是值得的,它可以完成你在这里尝试完成的所有事情。