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要小。
如果你觉得写的不错,欢迎转载和点赞。 转载时请保留作者署名jilodream/王若伊_恩赐解脱(博客链接:http://www.cnblogs.com/jilodream/