浮点-如何在C++中保持双变量的精度

floating point - How to keep the precision of double variable in C++?

本文关键字:变量 精度 C++ 浮点      更新时间:2023-10-16

这与打印无关。它是关于存储价值的。

int x = 1234;
double y = 0.3456;

double z = x + y;

当前z包含1234.35。我希望z包含1234.3456

可以做些什么来实现这一点?

它确实包含1234.3456。自行检查:

#include <cstdio>
int main()
{
    int x = 1234;
    double y = 0.3456;
    double z = x + y;
    printf("%.8fn", z);
}

输出:

1234.34560000

双精度包含小于16位小数。z的打印值不如存储值精确。如果你想要超过16位数字,你应该考虑特定的库,比如mpfr