我得到一个浮点数,作为我希望将其舍入为7位有效数字的方法的输出。例如:
如果1.234输出应为1.234000
如果7.1232478输出应为7.123248
我试过
sum=sum*1000000/1000000;
System.out.println(Float.toString(sum).substring(0,8));
有没有更好的方法呢?
答案 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);