首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >0.999999之类的数字四舍五入为1

0.999999之类的数字四舍五入为1
EN

Stack Overflow用户
提问于 2016-07-15 06:49:13
回答 3查看 254关注 0票数 0

在C/C++中:

我需要找出一些大数字是否是完美平方,但是我的代码发现像851659987045856130这样的数字是有效的,当922854261.000000487617621781778是实际的平方根(精度更高)而不是整数时。有没有办法延迟舍入以获得更高的精度?我知道上面的数字甚至没有“完美平方最后一位”,但我想知道一般情况下,是否有可能检查这么大的数字是否实际上是一个合理但比标准精度更高的完美平方。

EN

Stack Overflow用户

发布于 2016-07-15 07:03:09

这里要做的最好的事情是使用精确的平方根算法。如果这个数字代表您正在测试的大小,那么您甚至不需要multiprecision算术软件包-但是,这样的软件包将是获得此类算法实现的最容易的地方。实际上,它可能会直接实现is_square (而且可能比计算平方根更快)。

如果你对滚动你自己的实现感到好奇,通常的方法是牛顿的方法;例如在https://en.wikipedia.org/wiki/Integer_square_root看到的方法。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38385428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档