我正在使用decimal.Parse()
:将字符串转换为十进制
decimal.Parse(transactionAmount)
如果transactionAmount
包含一个整数,如1
,则结果为1
的十进制值。由于某种未知原因,我将其发送到程序外部的系统将其视为1美分,除非它显示为1.00
。如何确保整数包含小数点和零(如1.0
(?
decimal
包含点后的位数,作为其内部表示的一部分。所以1m
和1.00m
是不同的十进制值。因此,所有解析/格式化操作都将尝试保留来自/到字符串形式的信息,除非另有规定。
确保小数分隔符后至少有两位数的一种方法是添加正确的0-0.00m
:
decimal decimalOne = decimal.Parse("1"); // 1.
decimal decimalWithTwoDigit = decimalOne + 0.00m; // 1.00
请注意,以二进制形式向外部程序发送十进制值是不常见的。最有可能的是,您实际上需要格式化只有两位小数的十进制值,如C#-.ToString("#.00")
中强制两位小数所述。
尝试Convert.ToDecimal((而不是decimal。分析((