将浮点数舍入为java中的7位有效数字

时间:2015-03-04 11:12:59

标签: java

我得到一个浮点数,作为我希望将其舍入为7位有效数字的方法的输出。例如:

  

如果1.234输出应为1.234000

     

如果7.1232478输出应为7.123248

我试过

sum=sum*1000000/1000000;

System.out.println(Float.toString(sum).substring(0,8));

有没有更好的方法呢?

5 个答案:

答案 0 :(得分:2)

如果要显示结果,请使用System.out.printf(".7f");String.format(".7f")

System.out.printf("%.7f\n", 1.123456789123456789);
  

1.1234568

您想要计算某些内容,请查看BigDecimal

//For example, divide by 1 and give a prevision of 7 digits
BigDecimal divide = bigDecimal.divide(BigDecimal.ONE, 7, RoundingMode.HALF_EVEN);
System.out.println(divide);
  

1.1234568

答案 1 :(得分:1)

printf具有此功能

System.out.printf ("%.7f", floatNumber);

答案 2 :(得分:1)

使用 DecimalFormat 格式化数字。

DecimalFormat df = new DecimalFormat("####0.000000");
String result = df.format(1.234);
System.out.println(result);
  

1.234000

快速参考链接

http://tutorials.jenkov.com/java-internationalization/decimalformat.html

http://examples.javacodegeeks.com/core-java/text/decimalformat/java-decimal-format-example/

答案 3 :(得分:1)

String类中有一个格式方法。你可以用它。

String number=String.format("%.7f", 1.234567777);

数字变量将具有所需的结果,即(1.2345678)

答案 4 :(得分:1)

步骤1,创建DecimalFormat(示例是带有7位小数的​​数字,如果小于7则替换为零)

DecimalFormat df = new DecimalFormat("0.#######");

步骤2,设置舍入模式(选择的模式只是一个例子,选择最适合你的模式)

df.setRoundingMode(RoundingMode.HALF_UP);

第3步,格式编号

String myNumber = df.format(1.234);