gpt4 book ai didi

c# - 简单的计算,c#和delphi的结果不同

转载 作者:太空狗 更新时间:2023-10-29 18:01:30 25 4
gpt4 key购买 nike

问题是,为什么这些代码片段会给出不同的结果?

private void InitializeOther()
{
double d1, d2, d3;
int i1;

d1 = 4.271343859532459e+18;
d2 = 4621333065.0;
i1 = 5;

d3 = (i1 * d1) - Utils.Sqr(d2);
MessageBox.Show(d3.ToString());
}

procedure TForm1.InitializeOther;
var d1, d2, d3 : Double;
i1 : Integer;
begin
d1:=4.271343859532459e+18;
d2:=4621333065.0;
i1:=5;

d3:=i1*d1-Sqr(d2);
ShowMessage(FloatToStr(d3));
end;

Delphi 代码给出 816,而 C# 代码给出 0。使用计算器,我得到 775。谁能给我详细的解释?

非常感谢!

最佳答案

Delphi 将中间值存储为扩展(一种 80 位浮点类型)。这个表达式是扩展的:

i1*d1-Sqr(d2);

C# 可能并非如此(我不知道)。额外的精度可能会有所作为。

关于c# - 简单的计算,c#和delphi的结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/803042/

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