黑马程序员技术交流社区
标题:
关于学习中数据类型的一点困惑
[打印本页]
作者:
穆玉明
时间:
2013-6-9 14:16
标题:
关于学习中数据类型的一点困惑
本帖最后由 穆玉明 于 2013-6-9 23:18 编辑
double类型和decimal类型的转换,为什么double类型可以转换成demical类型,而decimal类型不可以转换成double类型 double类型的范围不是比demical类型范围大吗??
作者:
李奔
时间:
2013-6-9 14:52
double b = 2.000867;
decimal c = 5.88788676M;
//c = b; //不能显示转换
c = (decimal)b; //隐式转换,把double类型的转换成decimal类型
//b = c; //不能显示转换
b = (double)c; //隐式转换,把decimal类型的转换成double类型
//b =(double)c;
//c = (decimal)b;
Console.WriteLine("c={0},b={1}",c,b);
Console.ReadKey();
复制代码
我得出的结论是double类型与decimal类型可以相互转换,只不过必须是显示转换。
另外double类型虽然表示的范围比decimal大,但精度没有decimal高。
这是个人的理解,不知正确如否?
给你推荐一篇文章吧!http://www.cnblogs.com/yellowapplemylove/archive/2011/08/23/2150316.html
关于decimal,float和double区别的,很不错!
作者:
赵洋3916
时间:
2013-6-9 15:25
double类型的有效位15/16位, 而decimal 类型的精度是28位,但是表示的数据范围却比double类型小。decimal类型并不是C#中的基础类型,所以使用的时候会对计算时的性能有影响。
作者:
popoluno
时间:
2013-6-9 15:34
decimal 类型表示的数据范围比double类型小,但精度上decimal却比double高
作者:
蔡志涛
时间:
2013-6-9 15:37
本帖最后由 蔡志涛 于 2013-6-9 15:38 编辑
这两种数据一般是不相互转换的,因为容易丢失精度,尤其是大数据,decimal的精度比double要高,但是decimal的范围比double要小。decimal一般用于存储表示金钱的数。这里是msdn 中对这两种数据类型的介绍:
decimal.jpg
(49.21 KB, 下载次数: 0)
下载附件
2013-6-9 15:38 上传
double.jpg
(37.42 KB, 下载次数: 0)
下载附件
2013-6-9 15:38 上传
作者:
李晶晶
时间:
2013-6-9 17:15
double类型的范围是比decimal类型的范围大,但是它没有decimal的精度高,如果直接转换的话可能会丢失精度,这个系统是不会直接给你转换的,所以就需要程序员强制转换。而decimal由于精度比较高,所以存储金钱的时候一般选decimal而不推荐选int。。。这是我的理解 希望能帮到你。。。。
作者:
关关雎鸠
时间:
2013-6-9 19:51
精度的问题。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2