C# 将货币转换为字符串,删除小数点但保留小数点,在前面加上 0 以具有固定宽度

C# Convert currency to string, remove decimal point but keep decimals, prepend 0s to have fixed width

我该如何换算成这样的金额

38.50

,像这样固定宽度

000003850

我不想添加逗号和小数位,因为这里的一些建议答案正在解释如何做。我也不想去掉小数,我只想去掉小数点。

感谢 How to remove decimal point from a decimal number in c#? 的@ReedCopsey 解决了这个问题。

decimal amount = 38.50m;
int fixed_amount = (int)Math.Truncate(amount * 100);
Console.WriteLine(fixed_amount.ToString("D9"));

输出:

000003850

您可以将 string.Format() 与自定义格式说明符一起使用。查看详细信息 here

double dollars = 38.50;   // your value
int temp = (int)(dollars * 100);   // multiplication to get an integer
string result = string.Format("{0:000000000}", temp);

// Output: 000003850