C#将一个双精度variables转换为十进制
这对于一些人来说似乎是一个愚蠢的问题,但我需要投入一个双倍到十进制作为货币。 M去哪了?
decimal dtot = (decimal)(doubleTotal);
你只使用M
作为数字文字,当你施放它时:
decimal dtot = (decimal)doubleTotal;
请注意浮点数不适合保留一个确切的值,所以如果您先将数字相加,然后转换为Decimal
您可能会得到舍入错误。 您可能希望将数字转换为Decimal
数,然后再将它们加在一起,或者确保数字不是浮点数。
您可以像这样将一个double转换为小数,而不需要M
文字后缀:
double dbl = 1.2345D; decimal dec = (decimal) dbl;
在声明新的文字十进制值时,应该使用M
:
decimal dec = 123.45M;
(没有M
,123.45被认为是double,不会被编译。)
使用默认的转换类: Convert.ToDecimal(Double)
Convert.ToDecimal(the double you are trying to convert);