我怎样才能得到二重的精确值
How can I get the exact value of a double?
本文关键字:二重 更新时间:2023-10-16
我有一种情况,其中:
void foo( const double d )
{
const double rounded_2_decimals = std::round(d*100.0) / 100.0;
std::cout << "d=" << d << std::endl;
std::cout << "r=" << rounded_2_decimals << std::endl;
}
打印时,使用d=3.125
,但使用r=3.12
而不是r=3.13
。
我怀疑这是因为传入的d
实际上是3.1249999……这就是为什么我放入初始cout,这样我就可以看到传入的"true"值。std::cout
在显示值之前会对值进行舍入吗?否则,我怎么能看到传递的"真实"值呢?
是的,std::cout
会舍入值,但您可以设置更高的精度。首先包括iomanip
报头。然后:
void foo( const double d )
{
const double rounded_2_decimals = std::round(d*100.0) / 100.0;
std::cout << "d=" << std::setprecision(9) << d << std::endl;
std::cout << "r=" << std::setprecision(9) << rounded_2_decimals << std::endl;
}
此处的实时示例程序
相关文章:
- 如何将stdout重定向到stderr
- 将二维矢量传递给类
- 排序后如何将二维数组重置为原始形式
- 最小/最大整数和二重
- 在二重数组中递归查找负数
- 计算二重分子和分母的最准确方法
- 为什么这个正二重的腹肌等于零
- 对二重向量的向量进行排序
- 在C++中检查二重是否等于负无穷大的最佳方法
- 两个区间[a,b]之间的二重随机数生成
- 将boost用于长二重的(伪)随机数生成器
- 随机二重总是无限的
- 我怎样才能在c++中计算二重的阶乘
- 与变量长度无关的二重乘法
- c++求两个二重的标量乘积
- c++将向量归一化为二重
- 我怎样才能得到二重的精确值
- 重置矢量的二维阵列
- 利用GDAL/OGR库实现二维地理参考栅格数据阵列的栅格数据重投影
- C++中的二重否定