[英]passing a value to float format specifier in java
將數字四舍五入為n個小數位,我使用以下方法:
#include <stdio.h>
void main()
{
float a=0.12685;
int n=3;
printf("%.*f",n,a);
}
注意:-只能使用“ *”將值傳遞給浮點格式說明符。 %.xf之類的語句給出錯誤。
有沒有辦法在Java中做同樣的事情?
您可以只構建格式字符串:
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
如果要讓float值四舍五入到小數點后三位,則可以這樣進行:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.