| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 1888 人关注过本帖
标题:请教double和decimal类型
收藏  订阅  推荐  打印 
live41
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:67
帖子:12422
积分:126000
注册:2004-7-22
请教double和decimal类型

double类型 范围5*10^-324 ~ 1.7*10^308 有效位 15~16 decimal类型 范围1.0*10^-28 ~ 7.9*10^28 有效位 28~29

我想问为什么double比decimal的范围广,但有效位比decimal少?

搜索更多相关主题的帖子: double  decimal  类型  
2004-9-17 18:16
live41
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:67
帖子:12422
积分:126000
注册:2004-7-22

顶一下,请回答!
2004-10-2 09:04
Knocker
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:36
帖子:9963
积分:324662
注册:2004-6-1

所以我说吗,基础最重要

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-10-2 09:31
bcomer
Rank: 2
等级:注册会员
帖子:113
积分:1230
注册:2004-9-13

re:

我也看书上说:

一个double 类型的变量所表示的数据范围为-5.0*10^-324到1.7*10^308,精确度可达15到16位.

decimal的表示范围还没有float广大约是1.0*10^-28到7.9*10^28 但精确度却可以达到28到29位.

后面还有注意:一个类型的所谓精确度并不是指其小数点后的精确位数,而是整个数字的总位数.

更加不明白,那为什么double 没有decimal精确度高!

2004-10-2 18:40
live41
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:67
帖子:12422
积分:126000
注册:2004-7-22

两位高人,knocker没有回答我的问题,基础也要有逻辑合理才能接受啊!
2004-10-6 01:37
adm_qxx
Rank: 2
等级:注册会员
帖子:92
积分:1020
注册:2005-4-5

浮点数分两部分存储:尾数和阶码(指数部分)
表示尾数的位数多则精度高
表示指数的位数多则范围大
double虽然64位,但其精度低,故其可以表示的范围大
decimal虽然是128位,但由于其用了较多的位来表示其精度,只好牺牲表示范围了.

学习是进步的基础.
2005-4-5 21:58
adm_qxx
Rank: 2
等级:注册会员
帖子:92
积分:1020
注册:2005-4-5

这是MSDN上的解释,供各位参考:

Double 值类型表示一个值介于 -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字,以及 +0 或-0、PositiveInfinityNegativeInfinity 和非数字 (NaN)。Double 符合二进制浮点算法的 IEC 60559:1989 (IEEE 754) 标准。

decimal 关键字表示 128 位数据类型。同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。


学习是进步的基础.
2005-4-5 22:04
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.070665 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved