簡體   English   中英

在Java中將值傳遞給float格式說明符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM