左键填充浮点数,小数点后不会丢失尾随零

时间:2016-07-19 21:59:11

标签: c# .net formatting fixed-width

我正在尝试写出固定格式的文本文件,并且在格式化数字时遇到一些问题。它需要用前导零和隐含的十进制填充。

示例:

43.80

输出必须是:

0000004380

到目前为止,我试图将double转换为字符串,替换小数,然后填充“0”。

((amount.ToString()).Replace(".","")).PadLeft(10, '0')

这个问题是当数字以零结尾时。上面的例子如下:

0000000438

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

decimal value = 34.80M;
int intVal = (int)(value * 100);
return intVal.ToString("0000000000");

答案 1 :(得分:0)

你可以尝试:

((string.Format("{0:0.00}", amount)).Replace(".","")).PadLeft(10, '0')

这样,当值为0时,您不会丢失第二个小数位。

答案 2 :(得分:0)

您可以按照本文所述传递.ToString()格式字符串: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx

传入的值是否总是有两位小数?如果是这样,你可以乘以100来除去小数,然后到.ToString(“D10”)

(Int)(43.80 * 100).ToString(“D10”)

答案 3 :(得分:0)

这应该可以胜任:$"{(int)(amount * 100):D010}"