我正在尝试写出固定格式的文本文件,并且在格式化数字时遇到一些问题。它需要用前导零和隐含的十进制填充。
示例:
43.80
输出必须是:
0000004380
到目前为止,我试图将double转换为字符串,替换小数,然后填充“0”。
((amount.ToString()).Replace(".","")).PadLeft(10, '0')
这个问题是当数字以零结尾时。上面的例子如下:
0000000438
有什么建议吗?
答案 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}"