【问题标题】:C++ Same Equation but different results with (Calculator vs C++) [duplicate]C ++相同的方程式但结果不同(计算器与C ++)[重复]
【发布时间】:2016-04-23 15:50:54
【问题描述】:

过去两天我一直在做一个简短的项目,但现在一切都崩溃了, 因为有一个方程在 C++/C# 程序中计算时返回 8.660254 但为 0当您尝试用手或计算器计算时。

方程:

float mgr1 = (x + tr * 0.5f - tr / 2) * 1.73205f * 10.0f;

就我而言:

x = 0;
tr = 1;
float mgr1 = (0 + 1 * 0.5f - 1 / 2) * 1.73205f * 10.0f;

正确的结果是0,但是当用C++计算时,像这样,它返回8.660254?我疯了吗?关于 C++ 有什么我不知道的吗?这是什么?

【问题讨论】:

  • 1/2 上的整数除法为您提供 0。将其更改为 1.0/2,您将获得预期的结果...大约正确。

标签: c# c++ c++11 numbers equation


【解决方案1】:

整数的 / 运算符返回一个整数,而不是浮点值。 1/2 是 0。

1.0/2 或 1/2.0 会返回您期望的结果。

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多