在Java中舍入一个数字

时间:2011-10-28 04:15:30

标签: java double rounding

我不知道如何将数字舍入到某些小数位 我看着到处尝试过每一件事

目前我有我的程序用它来整数 double rACT = Math.ceil(ACT); double rSAT = Math.ceil(SAT); double rGPA = Math.ceil(GPA);

但我需要将它舍入到2位小数

仅供参考 - 我是一名高中生,我真的不需要一些非常复杂的东西 要做到这一点因为我需要我的方法少于15我可以浪费任何行

4 个答案:

答案 0 :(得分:9)

可能有一种更简单的方法,但显而易见的是:

double rSAT = Math.ceil(SAT * 100) / 100;

这将2.123之类的数字转换为212.3,将其舍入为213,然后将其分为2.13。

答案 1 :(得分:2)

通常,舍入最好在呈现数字(例如String)时完成。这样,数字可以以最高精度存储/传递,并且只有在向用户显示时才会截断信息。

此代码最多舍入到两位小数,并使用上限。

double unrounded = 3.21235;
NumberFormat fmt = NumberFormat.getNumberInstance();
fmt.setMaximumFractionDigits(2);
fmt.setRoundingMode(RoundingMode.CEILING);

String value = fmt.format(unrounded);
System.out.println(value);

答案 2 :(得分:0)

之前已经提出过这个问题,请查看How to round a number to n decimal places in Java

在我看来,最简单的解决方案就是克里斯:

double myNum = .912385;
int precision = 10000; //keep 4 digits
myNum= Math.floor(myNum * precision +.5)/precision;

答案 3 :(得分:0)

如果您正在寻找数字的字符串表示,您可以执行以下操作:

DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(12.912385));