根据IEEE 754,无法将字符串值转换为C#中的float

Akh*_*air 0 c# string floating-point ieee-754

好吧,我有一个字符串值"1.36383E + 37",我希望根据IEEE 754转换为浮点类型.请参阅下面的代码:

        try
        {
            return float.Parse(val, NumberStyles.Float | NumberStyles.AllowThousands, cultureInfo);
        }
        catch (Exception ex)
        {
        }
Run Code Online (Sandbox Code Playgroud)

它无法解析该值并向我抛出"Value对于单个值来说太大或太小"的例外情况

任何帮助都会感激不尽.

Jon*_*nna 5

我怀疑你正在使用一个用作千位分隔符cultureInfo的文化..例如,CultureInfo.GetCultureInfo("it")(意大利语)会导致您为该数据描述的错误,以及其他几个错误.您应该使用与编写数字的方式相匹配的文化.对于机器生产的琴弦,CultureInfo.InvariantCulture将是最佳选择.