【发布时间】:2013-10-10 00:55:56
【问题描述】:
将双精度从 12.45 转换为类似 00001245 的字符串(字符串长度 = 8)。
我该怎么做?
【问题讨论】:
-
请提供有关要求和限制的更多信息。它总是8个字符的字符串?超过 8 位的数字怎么办?
-
它总是精确 2 dp 吗?
标签: c# string double converter
将双精度从 12.45 转换为类似 00001245 的字符串(字符串长度 = 8)。
我该怎么做?
【问题讨论】:
标签: c# string double converter
String.Format("{0:D8}", (int)(12.45 * 100));
【讨论】:
int 的强制转换。 D 用于整数。
你可以这样做:
乘以 100,去掉.
将其转换为 int,以消除剩余的小数。
使用ToString()将其转换为string
然后用'0'在左边填充总大小为8的@
double d = 12.45;
string value = ((int)(d * 100)).ToString().PadLeft(8, '0');
【讨论】:
如果你的双精度在逗号后总是有 2 位数字,看起来你需要乘以 100 并使用 String.PadLeft 方法直到你得到 8 长度的字符串。
double d = 12.45;
Console.WriteLine((d * 100).ToString().PadLeft(8, '0'));
输出将是;
00001245
这里是 DEMO。
【讨论】:
也可以这样做:
String.Format("{0:00000000}", 12.45 * 100)
【讨论】:
;)