gpt4 book ai didi

c# string to float 转换不正确

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

我必须将字符串转换为 float ,只有普通转换器不起作用。

fi.Resolution = float.Parse(nodeC.InnerText);
fi.Resolution = (float)nodeC.InnerText;
fi.Resolution = Single.Parse(nodeC.InnerText);

还有更多这些方法不起作用。当 nodeC.InnerText 为 0.01 时,它返回 1,但是如果 nodeC.InnerText 是 5.72958e-07 它返回 0,0575958而 0.0001 也返回 1,所以它不是移位。

有谁知道为什么这个标准的 C# 转换不起作用?

所以我正在尝试编写自己的 StringToFloat 方法,但它失败了:P

public float StringToFloat(string input)
{
float output = 0;
char[] arr = input.ToCharArray();

for (int i = 0; i < input.Length - 1; i++)
{
if (arr[i].Equals("."))
output += 1;//change
else
output += Convert.ToInt32(arr[i]);
}

return output;
}

最佳答案

试试 fi.Resolution = float.Parse(nodeC.InnerText, CultureInfo.InvariantCulture);

看起来您当前的文化期望 , 作为小数点分隔符并忽略任何 . 存在。

因此

0.01        =>    001     => 1
5.72958e-07 => 572958e-07 => 0,0572958 (note it gave you a , not a .)

关于c# string to float 转换不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740871/

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