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

Java舍入任意数量

龙俊良
2023-03-14
问题内容

对于一个简单的问题,我似乎找不到所需的答案:如何将任何数字四舍五入到最接近的数字int

例如,无论何时数字为0.2、0.7、0.2222、0.4324、0.99999,我都希望结果为1。

到目前为止,我有

int b = (int) Math.ceil(a / 100);

不过,它似乎并没有完成任务。


问题答案:

Math.ceil()是正确的调用函数。我猜a是一个int,将a / 100执行整数运算。试试吧Math.ceil(a / 100.0)

int a = 142;
System.out.println(a / 100);
System.out.println(Math.ceil(a / 100));
System.out.println(a / 100.0);
System.out.println(Math.ceil(a / 100.0));
System.out.println((int) Math.ceil(a / 100.0));

输出:

1
1.0
1.42
2.0
2

看到http://ideone.com/yhT0l



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

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

  • 问题内容: 我想以一种优雅的方式将java日期向上或向下舍入到最近的分钟(或秒,小时,天)。 例如,日期“ 2012年1月25日星期三10:36:34 GMT”四舍五入到最接近的分钟将是“ 2012年1月25日星期三10:37:00 GMT”。 问题答案: 如果使用Apache commons- lang ,则可以使用DateUtils舍入日期:

  • 问题内容: 我想将1732的数字四舍五入到十,十万。我尝试了Math的舍入函数,但它仅针对float和double编写。如何针对Integer执行此操作?Java中有任何功能吗? 问题答案: 使用 精度 (Apache Commons Math 3.1.1) 使用 MathUtils (Apache Commons Math)-旧版本 标度 -小数点右边的位数。(+/-) 由于使用了 round(

  • 我将以下代码与java BigDecimal setScale方法结合使用,并使用半\u偶数舍入模式,得到以下结果。 结果:1.11 预计:1.12 由于距离5最近的偶数数字应该是2,因此我预期的结果是1.12。但结果是1.11。再一次, 结果:1.15 预期:1.14 因为5左边的偶数是4,所以我希望结果是1.14。对此有什么解释吗?

  • 问题内容: 我遇到了(我怀疑是)舍入错误。 我有一个字符串,我正尝试将其转换为双精度型。我已经可以使用函数将其拆分,并且可以很好地捕获基数和指数值。但是,一旦我尝试将它们适当地相乘,就会得到以下结果:。 这是我的相关代码: 那么,如何避免舍入错误?(我有多种方法可以解决此问题,但如果有可能,那么我想知道如何解决该问题) 谢谢。 问题答案: 您不需要拆分它,可以很好地处理这些数字。 看到?有用!