【发布时间】:2017-08-30 05:48:12
【问题描述】:
我是一名 Lua 开发人员,但最近开始学习 C++。
我注意到 C++ 处理数学计算的方式略有不同。我想知道是否有官方名称/解释为什么会发生这种情况,以及是否有办法让它变成我习惯的。
在Lua中,代码如下;
local a = ( 4 / 3 ) * 3.1415 * ( 5 * 5 * 5 )
print( a ) // This returns 523.58333
在 C++ 中
int a;
a = ( 4 / 3 ) * 3.1415 * ( 5 * 5 * 5 );
cout << a; // This returns 392
请注意,虽然等式的语法完全相同,但答案却不同。
谢谢:)
【问题讨论】:
-
4/3 == 1因为整数除法,使用4.0/3.0 -
我认为他的意思是四舍五入到 1
-
我注意到 C++ 处理数学计算的方式略有不同。 -- 还有 Java、C 和 C# 等。它们都会做你所遇到的事情C++ 代码——整数除法。
-
@CoryKramer 好吧,现在我觉得自己很笨哈哈。谢谢!
-
@kpjVideo 你不应该,当你开始精通其他语言时,你会发现每种语言的内部结构都非常不同