小编p d*_*p d的帖子

C++ 中算术运算和转换的机器值

我是 C++ 编程新手。我想知道 C++ 中以下简单操作的结果会获得什么可能的机器值:

int a = 3;
double inv_a;

inv_a =  (double) 1 / (double) a;
std::cout << "a*(1/a) = " << std::setprecision(30) << (double) a * inv_a << std::endl;
Run Code Online (Sandbox Code Playgroud)

例如,我想知道是否输出

(double) a * inv_a
Run Code Online (Sandbox Code Playgroud)

对于 a 的任何可能的 int 值,作为双精度值始终大于或等于 1.000...0。是否有可能获得严格小于 1 但非常接近它的值,例如 0.999...?当我将结果转换为 int 时,我正在考虑这个问题。先感谢您。

我的实验总是给出准确的 1。

c++ floating-point precision

2
推荐指数
1
解决办法
133
查看次数

标签 统计

c++ ×1

floating-point ×1

precision ×1