将值传递给java中的float格式说明符

时间:2015-08-30 06:31:21

标签: java c floating-point

将数字舍入到n个小数位,在C中,我使用以下方法: -

#include <stdio.h>          
void main()    
{    
float a=0.12685;      
int n=3;     
printf("%.*f",n,a);    
}       

注意: - 只有&#39; *&#39;可用于将值传递给float格式说明符。像%.xf这样的语句会给出错误。

有没有办法在Java中做同样的事情?

2 个答案:

答案 0 :(得分:2)

您可以构建格式字符串:

double a = 0.12685;
int n = 3;
System.out.printf("%." + n + "f", a);

您还可以使用NumberFormat

NumberFormat fmt = NumberFormat.getInstance();
fmt.setMinimumFractionDigits(n);
fmt.setMaximumFractionDigits(n);
System.out.print(fmt.format(a));

两者都会打印出来:

0.127

答案 1 :(得分:0)

如果您希望浮点值舍入到3位小数,那么您可以像:

float a = 0.12685f;
System.out.printf("%.3f", a);
//Output:
0.127

更好的方法是使用格式化程序:

DecimalFormat df = new DecimalFormat("#.000");
System.out.println(df.format(a));
//output
0.127