用十进制强制小数点和十进制后的0。

时间:2020-07-16 15:49:24

标签: c# decimalformat

我正在使用 Forms("Insert_Data_Others").CMBVoy_ID_Oths.AfterUpdate Call CMBVoy_ID_Oths_AfterUpdate 将字符串转换为小数:

decimal.Parse()

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

2 个答案:

答案 0 :(得分:2)

decimal包含点后的数字,作为其内部表示的一部分。因此1m1.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()