首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何近似为双倍?

如何近似为双倍?
EN

Stack Overflow用户
提问于 2010-06-10 21:30:02
回答 7查看 15.1K关注 0票数 0

如何以下面的方式编写一个近似于双精度的函数,返回一个int:

代码语言:javascript
运行
复制
function (2.3) -> 2
function (2.7) -> 3
function (-1.2) -> -1
function (-1.7) -> -2
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-06-10 21:31:56

这是家庭作业吗?因为有一个库函数可以做到这一点: Math.round()

如果你真的想自己实现类似的东西,一种方法是获取双精度值并显式地将其转换为int类型。

对于正数的情况,这基本上会截断它(例如,5.99变成5.00)。

现在您可以将其转换为双精度,并从原始数字中减去它。这将为您留下一个介于0和0.99之间的数字...

将其与0.50进行比较,并决定是向上舍入还是向下舍入。如果向下舍入,则取截断的数字,否则取截断的+ 1。

票数 4
EN

Stack Overflow用户

发布于 2010-06-10 21:31:20

这样如何:

代码语言:javascript
运行
复制
Math.round

你可能会在将双精度数转换成整型时出现溢出问题--这实际上会返回一个长整型的值。

票数 3
EN

Stack Overflow用户

发布于 2010-06-10 21:33:06

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3014805

复制
相关文章

相似问题

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