当前位置: 首页 > 面试题库 >

如何在Java中舍入整数

夹谷阳夏
2023-03-14
问题内容

我想将1732的数字四舍五入到十,十万。我尝试了Math的舍入函数,但它仅针对float和double编写。如何针对Integer执行此操作?Java中有任何功能吗?


问题答案:

使用
精度

(Apache Commons Math 3.1.1)

Precision.round(double, scale); // return double
Precision.round(float, scale); // return float

使用
MathUtils

(Apache Commons Math)-旧版本

MathUtils.round(double, scale); // return double
MathUtils.round(float, scale); // return float

标度 -小数点右边的位数。(+/-)

由于使用了 round(float,scale)方法而 被丢弃。

Math.round(MathUtils.round(1732,-1)); //最接近的十点,1730
Math.round(MathUtils.round(1732,-2)); //最接近的一百,1700
Math.round(MathUtils.round(1732,-3)); //最近的千,2000

更好的解决方案

int i = 1732;
MathUtils.round((double) i, -1); // nearest ten, 1730.0
MathUtils.round((double) i, -2); // nearest hundred, 1700.0
MathUtils.round((double) i, -3); // nearest thousand, 2000.0


 类似资料:
  • 问题内容: 我想将整数四舍五入到Java中最接近的1000。 因此,例如: 13,623发至13,000 18,999轮到18,000 等等 问题答案: 只需除以1000,就可以丢掉您不感兴趣的数字,然后乘以1000: 或者,您也可以尝试:

  • 我试图在Java中完善BigInteger,以下是我执行的代码 因此,输出prec1 = 49.32和prec2 = 49.33,对于我的使用情况,我需要始终舍入到49.33,那么除了设置两次比例之外,还有其他方法舍入到49.33吗?

  • 问题内容: 我只是写了一种微小的方法来计算手机短信的页数。我没有选择舍入使用,说实话,这看起来非常难看。 这是我的代码: 我真的不喜欢这段代码,我正在寻找一种更优雅的方法。有了这个,我期望是3,而不是3.0000000。有任何想法吗? 问题答案: 要舍入整数除法,您可以使用 或者两个数字都为正

  • 问题内容: 根据Wikipedia的说法,在四舍五入一个负数时,您对绝对数进行了四舍五入。因此,根据这种推理,-3.5将四舍五入为-4。但是当我使用java.lang.Math.round(-3.5)时返回-3。有人可以解释一下吗? 问题答案: 根据javadoc 返回最接近参数的long。通过将结果加1/2,将结果取底,并将结果强制转换为long类型,将结果舍入为整数。换句话说,结果等于表达式的

  • 问题内容: 我想使用Javascript舍入一个数字。由于数字是货币,因此我希望像以下示例一样将其舍入(小数点后两位): 192.168 => 192.20 192.11 => 192.20 192.21 => 192.30 192.26 => 192.30 192.20 => 192.20 如何使用Javascript实现呢?内置的Javascript函数将根据标准逻辑对数字进行四舍五入(四舍五

  • 问题内容: 给定以下代码,我希望它返回“ float = 32000.0001”。但是,它返回“ float = 32000.0”。 我可以采取一些措施来防止/控制舍入吗?我要返回没有四舍五入的完整值。 问题答案: 浮点数只有24位精度,不足以容纳您的值中的位数。四舍五入不是由于解析,而是由于数字的大小。如果需要浮点数,则必须使用double;如果需要任意精度,则必须使用BigDecimal。