c# 将字符串转换为单个

标签 c# .net-1.1

我有一个程序运行了一段时间,一切正常,直到这件奇怪的事情发生。当我将一个数字字符串转换为 Single 时,我就是无法获得我想要的值。例如:

Convert.ToSingle("11006.954") 返回值 11006.9541 Convert.ToSingle("20678.228")返回值 20678.2285

我知道我可以使用 Convert.ToDouble 修复它,但修改现有系统需要几天时间。我正在使用 vs2003 .net 1.1。

最佳答案

您似乎期望 Single 能够准确您给出的数字。它不能。 11006.9541 是最接近 11006.954 的 Single 值。 (事实上​​,最接近的 Single准确值是 11006.9541015625,但我怀疑您在调试器中看到的是 11006.9541。)

如果您想要精确表示最初表示为小数的数字,您应该使用 System.Decimal

请参阅我关于 binary floating point 的文章和 decimal floating point在 .NET 中获取更多信息。

关于c# 将字符串转换为单个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5469319/

相关文章:

c# - 如何根据切换按钮的状态放置工具提示,WPF

C#如何获取每个列的类型和长度,然后使用长度到 padright 来获取每个字段末尾的空格

c# - 在带有自定义 poco 对象作为 id 的 mongodb 文档中查找

c# - 如何以编程方式选择列表框中的项目?

wcf - 通过.NET 1.1调用.NET 4.0组件

c# - 如何处理反序列化变化的 JSON 数据?

c# - 在 C# 中缩放/插值测量数据

c# - Response.Redirect IE 8 中的奇怪行为

asp.net - (客户端)禁用提交按钮的最佳方法是什么?

.net - 在网络服务器上管理多个.Net框架