decimal 类型

今天看到转换方面    发现  居然多了一种类型 decimal    之前对其一直是能过就过  知道大概有这么一种类型     今天先用词典查 发现 decimal  的意思是  十进制小数

纳闷 为什么十进制小数 还需要专拿一个类型来实现   double 和float  不是挺好的了么

然后看书   发现他们之间的转换还是有问题     

然后查网上的资料终于明白   -----》http://www.cnblogs.com/xiaoL/archive/2011/01/20/1939835.html

 

里边写到  decimal 类型有28位的有效数字   但是表示的数据范围却比float和double类型小。decimal类型并不是C#中的基础类型,所以使用的时候会对计算时的性能有影响。

这句话的意思就是  虽然decimal  占用的内存更大  但是 那是用来保存 精度的    也就是保存 小数点以后的长度的

 

文中还提出了两点  平常容易出现的错误

还有两个非常危险的错误认识!!

1、decimal不是浮点型、decimal不存在精度损失。

下面有段程序大家可以去看看结果是什么。记住!所有的浮点型变量都存在精度损失的问题,而decimal是一个不折不扣的浮点型,不论它精度有多高,精度损失依然存在!

decimal dd = 10000000000000000000000000000m;

dd += 0.1m;

Console.WriteLine ( "{0:G50}", dd ); 

2、decimal所能储存的数比double大,从double到decimal的类型转换不会出现任何问题。

微软在decimal的帮助上真的要好好反省了。实际上只有从整形到decimal的转换才是扩大转换,decimal的精度比double大,但所能储存的最大数却比double要小。

 

转载于:https://www.cnblogs.com/jilodream/archive/2012/11/07/4222773.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值