如何以下面的方式编写一个近似于双精度的函数,返回一个int:
function (2.3) -> 2
function (2.7) -> 3
function (-1.2) -> -1
function (-1.7) -> -2发布于 2010-06-10 21:31:56
这是家庭作业吗?因为有一个库函数可以做到这一点: Math.round()
如果你真的想自己实现类似的东西,一种方法是获取双精度值并显式地将其转换为int类型。
对于正数的情况,这基本上会截断它(例如,5.99变成5.00)。
现在您可以将其转换为双精度,并从原始数字中减去它。这将为您留下一个介于0和0.99之间的数字...
将其与0.50进行比较,并决定是向上舍入还是向下舍入。如果向下舍入,则取截断的数字,否则取截断的+ 1。
发布于 2010-06-10 21:31:20
这样如何:
Math.round你可能会在将双精度数转换成整型时出现溢出问题--这实际上会返回一个长整型的值。
发布于 2010-06-10 21:33:06
您可以使用https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html中的Math.round方法。
https://stackoverflow.com/questions/3014805
复制相似问题