【问题标题】:Convert To Decimal String Digits Problem C#转换为十进制字符串数字问题 C#
【发布时间】:2023-02-08 23:10:35
【问题描述】:

list[i].Enlem 是一个包含值 41,0945876 的字符串。当我运行下面的代码时,它会转换为 41.09

company.Lat = Convert.ToDecimal(list[i].Enlem)

我需要完全的精确度。我怎样才能解决这个问题?

【问题讨论】:

  • Convert.ToDecimal("41,0945876") 肯定不会将其转换为 decimal 41.09,因此还有其他您未显示的循环代码。请注意,如果可能,您不应将其存储为字符串,或者至少使用采用正确区域性的重载以确保逗号始终被视为小数点分隔符。例如:Convert.ToDecimal("41,0945876", System.Globalization.CultureInfo.CreateSpecificCulture("tr-TR"))
  • 此外,似乎混合使用逗号作为小数点(小数点)和使用句点。

标签: c# string decimal converters


【解决方案1】:

如果您需要精度,请使用双精度而不是十进制。

请参见:

Difference between decimal, float and double in .NET?

company.Lat = Convert.ToDouble(list[i].Enlem)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2018-12-14
    相关资源
    最近更新 更多