Java 浮点数输出格式,四舍五入

http://oracle-9i.iteye.com/blog/1103316

double四舍五入得到精确结果:

double a = -12.4658;

double b = -12.5658;

System.out.println((int) Math.floor(a));

System.out.println((int) Math.ceil(b));

System.out.println(new BigDecimal(a).setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println(new BigDecimal(b).setScale(0, BigDecimal.ROUND_HALF_UP));

注:一般double型不适合初始化BigDecimal(最好用String类型的),但要输出四舍五入最好用BigDeicmal的输出格式,因为BigDecimal的有效数字大于16.

结果:

-13

-12

-12

-13

1)System.out.printf("",) 这个有的地方有输出格式错误,但大多数地方还是可以的

import java.math.*;

import java.util.*;

import java.text.*;

2)http://g.kehou.com/t1018145137.html

例子:

System.out.println(Math.ceil(123.456));

System.out.println(Math.floor(123.456));

System.out.println(Math.round(123.456));

System.out.println(Math.round(123.456 / .01) * .01);

System.out.println(Math.round(123.456 / 10) * 10);

System.out.println(Math.round(122.45 / 5) * 5);

DecimalFormat df = new DecimalFormat("0.00");

System.out.println(df.format(123.456));

DecimalFormat df1 = new DecimalFormat("-0.00");

System.out.println(df1.format(123.456));

DecimalFormat df2 = new DecimalFormat(",000.#");

System.out.println(df2.format(12345.05));

System.out.println(df2.format(123.456));

// #: 后面没数字 ,0也代表没有。 0: 超出范围按原来的输出,不够补零

DecimalFormat df3 = new DecimalFormat("#,###");

System.out.println(df3.format(12345.6));

DecimalFormat df4 = new DecimalFormat("0.00%");

System.out.println(df4.format(123.456));

DecimalFormat df5 = new DecimalFormat("0.000E00");

System.out.println(df5.format(1234.56));

DecimalFormat df6 = new DecimalFormat("0.00\u2030");

System.out.println(df6.format(123.4567));

输出:

124.0

123.0

123

123.46000000000001

120

120

123.46

-123.46

12,345

123.5

12,346

12345.60%

1.235E03

123456.70‰

3)http://blog.csdn.net/ghychina/article/details/7556197

BigDecimal f2 = new BigDecimal("12.56").setScale(0, BigDecimal.ROUND_HALF_UP);

System.out.println(f2);

4)http://www.blogjava.net/jzone/articles/292581.html

例子:

System.out.println((int) Math.rint(2.5));

}

结果:

2

3

1235

0.21112804862552115 0.22463215060969088 false

0.632170890240952 0.23340358003260187 true

0.279415739588288 0.702832475646666 false

0.10463516134365447 0.8008920181649813 false

0.3483970844364095 0.9275524624734964 true

0.04358678634031876 0.07910617091419747 true

0.18868018082404936 0.02508782117927366 true

0.853959812163814 0.8019206525506904 true

0.20117519818929142 0.8022293645731935 true

0.7455301430762435 0.9085165602651166 false