使用 decimal.Parse 强制小数点和小数点后的 0

Force decimal point and 0's after decimal with decimal.Parse

我正在使用 decimal.Parse():

将字符串转换为小数
decimal.Parse(transactionAmount)

如果transactionAmount包含一个整数,例如1,结果是1的十进制值。我将它发送到程序外部的系统出于某种未知原因将其视为 1 美分,除非它显示为 1.00。如何确保整数包含小数点和零,例如 1.0?

尝试 Convert.ToDecimal() 而不是 decimal.Parse()

decimal 包含小数点后的位数作为其内部表示的一部分。所以 1m1.00m 是不同的`十进制值。结果,所有 parsing/formatting 操作将尝试保留来自 from/to 字符串形式的信息,除非强制要求。

确保小数点分隔符后至少有 两位数的一个技巧是添加正确的 0 - 0.00m:

    decimal decimalOne = decimal.Parse("1"); // 1.
    decimal decimalWithTwoDigit = decimalOne + 0.00m; // 1.00

请注意,向外部程序发送二进制形式的十进制值是不常见的。很可能你实际上需要 format 十进制值只有两位数 Force two decimal places in C# - .ToString("#.00").