gpt4 book ai didi

C# float.Parse 字符串

转载 作者:可可西里 更新时间:2023-11-01 08:03:46 26 4
gpt4 key购买 nike

我是 C# 新手,需要从文件中读取 float(x, y, z)。看起来像:

0 -0.01 -0.002

0.000833333333333 -0.01 -0.002

如果我正在尝试

float number = float.Parse("0,54"); // it works well, but
float number = float.Parse("0.54"); // gains exepction.

我从每一行读取值的代码(可能有问题):

int begin = 0;
int end = 0;
for (int i = 0; i < tempLine.Length; i++)
{
if (Char.IsWhiteSpace(tempLine.ElementAt(i)))
{
end = i;
float value = float.Parse(tempLine.Substring(begin, end));
begin = end;
System.Console.WriteLine(value);
}
}

有人可以帮忙吗?

最佳答案

float.Parse(string) method默认使用您当前的文化设置。看起来像你的 CurrentCultureNumberDecimalSeparator property 不是

这就是您在 "0.54" 示例中得到 FormatException 的原因。

作为解决方案,您可以使用具有 . 的区域性作为 NumberDecimalSeparator,例如 InvariantCulture作为 Parse 方法中的第二个参数,或者您可以 .Clone()您的 CurrentCulture 并将其 NumberDecimalSeparator 属性设置为

float number = float.Parse("0.54", CultureInfo.InvariantCulture);

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.NumberDecimalSeparator = ".";
float number = float.Parse("0.54", culture);

关于C# float.Parse 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722032/

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