Pro*_*mer 0 c++ floating-point c++builder
可能重复:
表示中的浮点错误?
我有这个代码的问题
int cent;
int dollar ;
float cnt2dlr;
//convert cnt to doloar ;
cnt2dlr=(cnt)/(100);
Run Code Online (Sandbox Code Playgroud)
问题是何时cnt = 175,cnt2dlr = 0.17,444444而不是0.17,5
有帮助吗?
浮点数通常不准确.你无能为力.
您的代码很好地说明了为什么不应该使用浮点数进行涉及金钱的计算.正因为货币值有一个小数点并没有赚钱浮点量.浮点应该用于无限小的变化,如温度或速度,而不是大块的数量,如金钱.