栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何检查双精度数最多是否具有n个小数位?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何检查双精度数最多是否具有n个小数位?

测试失败,因为您已经达到了二进制浮点表示的精度,在IEEE754 double
precision的
情况下大约为16位。将649632196443.4279乘以10000将截断二进制表示形式,从而在随后舍入和除法时导致错误,从而使函数的结果完全无效。

有关更多详细信息,请参见http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems

更好的方法是检查

n+1
小数位是否低于某个阈值。如果
d -round(d)
小于
epsilon
(请参阅limit),则的小数表示形式
d
没有有效的小数位。同样,如果
(d- round(d)) * 10^n
小于
epsilon
,则d最多可以有
n
重要位置。

使用Jon Skeet)的代码

DoubleConverter
来检查
d
是否不够精确,无法容纳您要查找的小数位。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号