为了账号安全,请及时绑定邮箱和手机立即绑定

十进制类型的声明后缀

/ 猿问

十进制类型的声明后缀

慕森卡 2019-12-21 12:34:41

如果我想在代码中使用十进制数,我已经看到存在m后缀(其中m代表金钱)。这是否适用于任何小数点或存在更一般的含义(d代表双精度,即表示虽然支持直接转换,但不是正确的选择)。


object decimalValue=2m;

请注意,我以对象分配为例,因为在...的情况下


decimal decimalValue=2;

...其隐含的明确含义是编译器应将2解释为十进制。


编辑: m似乎还可以,msdn将其用作小数类型的示例。


查看完整描述

3 回答

?
繁花不似锦

记录在C#语言规范的第2.4.4章中:


float f = 1.2f;

double d = 1.2d;

uint u = 2u;

long l = 2L;

ulong ul = 2UL;

decimal m = 2m;

对于int,byte,sbyte,short,ushort没有任何要求。


查看完整回答
反对 2019-12-21
?
侃侃尔雅

如果没有后缀,则数字实数文字将是Double。m后缀指定数字实数应为小数。


这实际上很重要,因为浮点值(例如Double)的算术不精确。例如:


object decimalValue=(5.32 + 2.23);

在这里,十进制值实际上将包含一个Double,其意外值是7.5500000000000007!如果我想要7.55,可以这样做:


object decimalValue=(5.32m + 2.23m);

为了回答有关是否存在更通用的后缀的问题,m是C#中Decimal 的唯一后缀。正如您所提到的,它可能代表金钱,但是他们确实使用了d以外的其他东西,因为Double已使用了它!


查看完整回答
反对 2019-12-21
?
暮色呼如

C#中声明十进制的简短答案


decimal firstMoney = 141.28m;

O / P: 141.28


decimal secondMoney = 100.00m;

O / P: 100


有关更多信息,请参见MSDN。


希望可以帮助某人。


查看完整回答
反对 2019-12-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信