我正在使用 Forms("Insert_Data_Others").CMBVoy_ID_Oths.AfterUpdate
Call CMBVoy_ID_Oths_AfterUpdate
将字符串转换为小数:
decimal.Parse()
如果decimal.Parse(transactionAmount)
包含一个整数,例如transactionAmount
,则结果为1
的十进制值。我出于某些未知原因将其发送到程序外部的系统将其视为1美分,除非它显示为1
。如何确定整数包含小数点和零,例如1.00
?
答案 0 :(得分:2)
decimal
包含点后的数字,作为其内部表示的一部分。因此1m
和1.00m
是不同的`十进制值。结果,除非另有强制,否则所有解析/格式化操作都将尝试保留来自字符串形式的信息。
确保十进制分隔符后至少有两位数字的一种技巧是添加适当的0-0.00m
:
decimal decimalOne = decimal.Parse("1"); // 1.
decimal decimalWithTwoDigit = decimalOne + 0.00m; // 1.00
请注意,以二进制形式发送十进制值到外部程序是不寻常的。实际上,您很有可能只需要{em> 十进制值的两位数字,如Force two decimal places in C#-.ToString("#.00")
所述。
答案 1 :(得分:-1)
尝试使用Convert.ToDecimal()而不是decimal.Parse()