c++ - 在 C++ 中划分后的奇怪结果

标签 c++ division

我想像下面这样划分为变量。我发现当我将 c 划分为 double 并且例如值是 0.013777788770019110 时,差异变为6.9533479143199673e-310

double diff = c /  static_cast<double>(10);

为什么结果是这样的。你能帮帮我吗?

部分代码如下:

double c = uniform(0,(nextac0PktExpir->getArrivalTime() - simTime()).dbl());
double diff = c / 10.0;

最佳答案

#include <iostream>

int main()
{
  double c(0.0134);
  double diff;
  std::cout << diff << std::endl;
  diff = c /10.0;
  std::cout << diff;

  return 0;
}

使用 g++ 它将打印:

6.95322e-310    (or something similar...)
0.00134

在执行分配之前,您可能正在调试器中检查 diff 的值。

关于c++ - 在 C++ 中划分后的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22382180/

相关文章:

c++ - 如果我不告诉要在 C++ 中抛出什么类型的对象,throw 语句会抛出什么?

c++ - 如果模板 arg 是 const,则将 const 添加到类型

java 模块化划分健全性检查

PHP 除法返回不同的结果 (Linux/Windows)

javascript - 使用 Jquery 或 Javascript 动态计算字段的划分

Python 除法返回错误结果

c++ - 如何为 lambda 创建 'reference'?

c++ - Visual Studio 应用程序在调试时运行速度极慢

c++ - 为什么即使在 const 函数中也会更改值?

mysql - 在选择错误中插入...选择除法运算符?