【问题标题】:Convert double to string (C#)将双精度转换为字符串 (C#)
【发布时间】:2013-10-10 00:55:56
【问题描述】:

将双精度从 12.45 转换为类似 00001245 的字符串(字符串长度 = 8)。

我该怎么做?

【问题讨论】:

  • 请提供有关要求和限制的更多信息。它总是8个字符的字符串?超过 8 位的数字怎么办?
  • 它总是精确 2 dp 吗?

标签: c# string double converter


【解决方案1】:
String.Format("{0:D8}", (int)(12.45 * 100));

【讨论】:

  • 我得到一个例外:“格式说明符无效。”
  • 缺少对int 的强制转换。 D 用于整数。
【解决方案2】:

你可以这样做:

  • 乘以 100,去掉.

  • 将其转换为 int,以消除剩余的小数。

  • 使用ToString()将其转换为string

  • 然后用'0'在左边填充总大小为8的@


double d = 12.45;
string value = ((int)(d * 100)).ToString().PadLeft(8, '0');

【讨论】:

    【解决方案3】:

    如果你的双精度在逗号后总是有 2 位数字,看起来你需要乘以 100 并使用 String.PadLeft 方法直到你得到 8 长度的字符串。

    double d = 12.45;
    Console.WriteLine((d * 100).ToString().PadLeft(8, '0'));
    

    输出将是;

    00001245
    

    这里是 DEMO

    【讨论】:

      【解决方案4】:

      也可以这样做:

      String.Format("{0:00000000}", 12.45 * 100)
      

      【讨论】:

      • 您可以更新您当前的答案,而不是添加另一个答案。我认为这会更好;)
      • 我将其发布为另一个答案,因为它使用了另一种方法。我不想混合好/坏的解决方案:)
      猜你喜欢
      • 2015-04-10
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多