我正在读取从文件到双精度值的值,这是一个双精度值(625.20)
双重进入:625.20000000000005
我已经尝试了所有东西(包括我在StackExchange上能找到的所有内容),以便在百分之后丢弃数字,但无济于事。
我尝试过使用地板,我尝试乘以100然后再转换为int然后再回到double,似乎没什么用。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
625.20不能表示为double - 因此选择最接近的可表示值,大约为625.20000000000005。
基本经验法则:
int
或内置构造(如果可用)答案 1 :(得分:1)
您可以使用小数精度来格式化输出操作中的浮点值。
#include <iostream>
#include <string>
#include <iomanip>
int main()
{
double f =3.14159;
std::cout << std::setprecision(4) << f << '\n';
}
结果:3.142