【问题标题】:string to double skips last decimal if it is zero?如果字符串为零,则双倍跳过最后一个小数点?
【发布时间】:2013-10-24 19:16:39
【问题描述】:

这是我的问题。

我需要将“5.550”(字符串)转换为 5.550 这是带有 3 个十进制数字的双精度数。 我在解析时尝试了 IFormatProvider,但没有使用。它一直跳过最后一个零()。 请指教。

谢谢, 库马尔 M A

【问题讨论】:

  • 当小数点末尾的尾随零时,没有“将零保留在双精度数”之类的东西。该值为 5.55。您可以将其格式化为带有额外零的字符串,但 ACTUAL 值仍为 5.55
  • 你怎么知道它正在跳过最后一个零?如果是通过在屏幕上打印它,您可以将尾随零格式化回......您可以分享您的相关代码来证明您的问题吗?
  • 如果你想得到一个 5.550 的双精度值,你将无法做到,因为最后一个零是没有意义的(它也不能用二进制代码表示),我也认为没有必要再次,这样做没有任何意义,如果你想以这样的方式打印它,你可以使用字符串格式,否则就没有意义了。

标签: c# double tryparse


【解决方案1】:

double 不会保留无意义的数字 - 就double 而言,1.5 和 1.50000 之间没有区别。

如果您想保留无意义的数字,请改用decimal。无论如何,它可能更适合您,具体取决于您的确切上下文。 (我们这里没有什么上下文可以继续……)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    相关资源
    最近更新 更多