除法没有给出预期的结果

Posted

技术标签:

【中文标题】除法没有给出预期的结果【英文标题】:Division not giving the expected result 【发布时间】:2013-03-21 18:48:16 【问题描述】:

代码:

float cordsStepAmountHeight;
float cordsStepAmountWidth;

coordStepAmountHeight=(2.0f/height);
coordStepAmountWidth=(2.0f/width);

其中宽度为 2560,高度为 1504(我设备的分辨率)。

经过计算,coordStepAmountHeight 的值为 0.0013297872 是正确的 但 cordsStepAmountWidth 以 7.8125E-4 的形式出现(当我认为它应该是 0.00078125 时)

为什么 coordStepAmountWidth 会这样出现?是否与声明为浮点数的变量无法处理计算或其他原因有关?

【问题讨论】:

【参考方案1】:

是同一个号码。就是所谓的浮点数的科学表示。你可以在这里阅读更多信息:http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/

【讨论】:

太棒了,这让我很困惑,为什么它们的表示方式不同。感谢您的回答。【参考方案2】:

7.8125E-4 和 0.00078125 与 e-4 表示 x10^-4(除以 10000)相同。所以从数学的角度来看,它们是相同的。

【讨论】:

以上是关于除法没有给出预期的结果的主要内容,如果未能解决你的问题,请参考以下文章

Verilog 没有给出预期的结果

使用 sysdate 时的 Oracle SQL,为啥它没有给出预期的结果

列表、条件和循环没有给出预期的结果[关闭]

带有 Locale.getDefault() 的数字格式没有给出预期的结果

字符串拆分方法没有给出预期的结果[重复]

使用 Calabash 查询 all 没有给出预期的结果