gpt4 book ai didi

类型为 "long"的 C++ 计算

转载 作者:行者123 更新时间:2023-11-27 23:19:20 25 4
gpt4 key购买 nike

我有一个内联函数执行频率到周期的转换。计算精度必须使用 long 类型,而不是 double 类型。否则,可能会导致一些舍入错误。然后该函数将结果转换回double。我想知道在下面的代码中,哪一行会将计算保持为 long 类型。无论参数bar是100、100.0还是33.3333。

double foo(long bar)
{
return 1000000/bar;
return 1000000.0/bar;
return (long)1000000/bar;
return (long)1000000.0/bar;
}

我自己试了一下,第4行可以。但只是想知道这种情况下类型转换的概念。

编辑:

其中一个错误是 1000000/37038 = 26,而不是 26.9993。

最佳答案

return 1000000/bar;

这将计算很长时间。

return 1000000.0/bar;

这会将数学计算为 double 值。

return (long)1000000.0/bar;

这等同于第一个 -- 1000000.0 是一个 double ,但是你在除法之前将它转换为 long,所以除法将在 long 上完成。

关于类型为 "long"的 C++ 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com