C#中的decimal数据类型为什么不能直接赋值?

比如这条语句:decimala=3.14;编译器会提示出错,而改为:decimala=3.14M;这样不会出错,请各位帮忙解释一下这是怎么回事。... 比如这条语句:
decimal a=3.14;
编译器会提示出错,而改为:
decimal a=3.14M;
这样不会出错,请各位帮忙解释一下这是怎么回事。
展开
 我来答
FantasyChump
推荐于2017-11-27 · TA获得超过3288个赞
知道大有可为答主
回答量:2127
采纳率:0%
帮助的人:2245万
展开全部
不是不能直接赋值,而是写法的问题,直接写 3.14 编译器会认为这是一个双精度数而非decimal,而从double到decimal是不可以隐式转换的,所以会报错,后面加上了M以后就表示这是告诉编译器这就是个decimal,所以可以直接赋值。

至于为什么双精度型(double)到实数(decimal)不可隐式转换,是因为后者精度更高,但是其数值表示范围反倒不如前者大。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式