为了账号安全,请及时绑定邮箱和手机立即绑定

机器和DB中的最大小数位数[保持]

机器和DB中的最大小数位数[保持]

Smart猫小萌 2019-04-17 13:15:38
1)对于给定的机器,是否存在可以存储在磁盘上的浮点十进制数的最大小数位数?2)给定的关系数据库管理系统可以使用的最大小数位数是多少?3)假设C ++代码使用存储在磁盘上的确切数字,即完整的小数位数。如果C ++代码输出的结果数(例如,将数字乘以2),并且小数位数超过db允许的数量,db如何处理它?抛出异常或四舍五入到底层硬盘允许的最大位数?
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

1)对于给定的机器,是否存在可以存储在磁盘上的浮点十进制数的最大小数位数?

通常,浮点数的精度由处理器或浮点处理器确定。

有“大数”库可以扩展浮点数的精度。

因此,可以存储在磁盘上的最大小数位数取决于:
1)磁盘的大小。
2)浮点实现的大小(例如Big Number库)。

2)给定的关系数据库管理系统可以使用的最大小数位数是多少?

是。每个RDBMS都有自己的限制。数据库之间没有标准限制。你必须调查数据库并找出答案。

3)假设C ++代码使用存储在磁盘上的确切数字,即完整的小数位数。如果C ++代码输出的结果数(例如,将数字乘以2),并且小数位数超过db允许的数量,db如何处理它?抛出异常或四舍五入到底层硬盘允许的最大位数?

溢出或容量限制取决于浮点实现(处理器和数据库实现)。有些实现可能会截断,有些可能会舍入; 一切都取决于 对于数据库,所有数据库中都没有标准,用于处理精度溢出或容量限制。您必须调查您计划使用的数据库或所有数据库。

还在互联网上搜索“IEEE浮点标准”。


查看完整回答
反对 回复 2019-05-15
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

1)对于给定的机器,是否存在可以存储在磁盘上的浮点十进制数的最大小数位数?

计算机本身不存储小数位。他们维护二进制数字。最大二进制位数由进程和所选浮点值的类型确定。二进制数字的数量限制了可以将值转换为两个具有任何含义的最大小数位数。

2)给定的关系数据库管理系统可以使用的最大小数位数是多少?

这是计算机上所有内容的限制。数据库可以本机存储值,也可以转换为自己的格式。如果本机存储,则硬件支持的二进制数是限制。如果以自己的格式存储,数据库可以选择任意数量的数字。这个数字可能非常大。

3)假设C ++代码使用存储在磁盘上的确切数字,即完整的小数位数。如果C ++代码输出的结果数(例如,将数字乘以2),并且小数位数超过db允许的数量,db如何处理它?抛出异常或四舍五入到底层硬盘允许的最大位数?

乘以2只会增加指数。如果指数溢出,您将只获得异常。


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 438 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号