使用 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
包含小数点后的位数作为其内部表示的一部分。所以 1m
和 1.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")
.
我正在使用 decimal.Parse()
:
decimal.Parse(transactionAmount)
如果transactionAmount
包含一个整数,例如1
,结果是1
的十进制值。我将它发送到程序外部的系统出于某种未知原因将其视为 1 美分,除非它显示为 1.00
。如何确保整数包含小数点和零,例如 1.0
?
尝试 Convert.ToDecimal() 而不是 decimal.Parse()
decimal
包含小数点后的位数作为其内部表示的一部分。所以 1m
和 1.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")
.