gpt4 book ai didi

c# - float 学,63.500000 x 2 = 127000000

转载 作者:行者123 更新时间:2023-11-30 16:19:47 24 4
gpt4 key购买 nike

以下代码有问题:

private const int movementMultiplier = 2;

void Test() {
XmlNode xnXCoordinate = xd.SelectSingleNode("/data/x");
XmlNode xnYCoordinate = xd.SelectSingleNode("/data/y");

int xLoc = Convert.ToInt32(Convert.ToSingle(xnXCoordinate.InnerText)) * movementMultiplier;
int yLoc = Convert.ToInt32(Convert.ToSingle(xnYCoordinate.InnerText)) * movementMultiplier;
}

此代码在客户端的 PC(~2009 MacBook 通过 Bootcamp 运行 Windows)上运行,具有给定的值/结果:

xnXCoordinate.InnerText = 63.500000
xnYCoordinate.InnerText = 242.000000

XLoc = 127000000
yLoc = 484000000

当我运行它时,我想出了:

xnXCoordinate.InnerText = 63.500000
xnYCoordinate.InnerText = 242.000000

XLoc = 128
yLoc = 484

Convert.ToInt32(Convert.ToSingle(x)) 似乎丢失了小数位。这发生在多台 PC 上(但是我从来没有访问过测试)。这里似乎出现了某种类型的 float 学错误,但我不确定是什么。任何人都可以建议发生了什么事吗?

最佳答案

怎么样

Convert.ToInt32(Convert.ToSingle(x, CultureInfo.InvariantCulture) )

?

(由于 Pete 的评论而修复)

关于c# - float 学,63.500000 x 2 = 127000000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14988447/

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