我有像这样的东西
double d1=4.0;
double d2=8.0;我正在尝试使用cout打印这些双精度值的总和。是否可以在不设置精度的情况下以精确的精度打印总和?
如果值为
double d1=4.23;
double d2=4.0;总和应打印8.23,不带任何额外的零。
发布于 2016-06-10 01:24:33
本机浮点值不能以这种方式工作。
一旦你设置了一个double
double d1=4.23;那么d设置的实际值大约是4.23000000000004263256
这在一开始就发生了。不要通过Go。不要收200美元。这已经太晚了,甚至在你计算和之前,因为4.23在以2为基数的浮点表示中不是一个可表示的数字。
实现精确非整数数学运算的唯一方法是使用专门为此目的而设计的库,例如GMP的mpq_t rational numbers。
https://stackoverflow.com/questions/37732247
复制相似问题