浮点-如何在C++中保持双变量的精度
floating point - How to keep the precision of double variable in C++?
这与打印无关。它是关于存储价值的。
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
相关文章:
- 在 C++ 中将双精度变量写入二进制文件
- 将双精度变量设置为另一个变量的值
- 将双精度值转换为 char 变量时字符串流如何工作
- 从二进制流中读取时,将双精度变量的地址转换为 char* 意味着什么?
- 警告:左移计数 >= 在 C++ 中将字节流读取为双精度变量时的类型宽度
- 为什么双精度引用值在分配给C++中的浮点变量时不会更改
- 使用词法强制转换在'string to double'中设置双精度变量的精度
- C++ - 截断变量文件名中双精度的小数位
- 为什么自动推断这个变量为双精度而不是浮点数?
- 如何使用 c++ 将多个变量存储在一个变量中?例如,双精度 x,y,z 包含在可变点 p 中
- 带有双精度的变量无法正常工作
- 整数和双精度变量的初始化
- 当将变量作为函数参数传递时,由于隐式铸造而导致的精度丧失
- 如何在C 中设置浮动变量的精度
- 双变量的精度仅为十点后的2个位置
- C :将精度设置为变量,不仅用于couting
- 将 Int 指针分配给双精度变量
- 如何在将双精度作为输入后将整行作为字符串变量的输入
- 如何在 for 循环内部或外部打印双精度变量
- 在C 中声明一个八倍精度浮点变量