A. java 如何使的float保留2位或者多位小數
表明四捨五入,保留兩位小數即float ft = 134.3435f; int scale = 2;//設置位數 int roundingMode = 4;//表示四捨五入,可以選擇其他舍值方式,例如去尾,等等. BigDecimal bd = new BigDecimal((double)ft); bd = bd.setScale(scale,roundingMode); ft = bd.floatValue();方法2:importjava.text.DecimalFormat;Stringa=newDecimalFormat(###,###,###.##).format(100.12345);即float scale = 34.236323; DecimalFormat fnum = new DecimalFormat(##0.00); String dd=fnum.format(scale); System.out.println(dd); 方法3:最簡單的方法 float b = (float)(Math.round(a*100))/100;(這里的100就是2位小數點,如果要其它位,如4位,這里兩個100改成10000)
B. 請問:在Java語言中如何把一個浮點數精確到小數點後的某幾位
--Math.round()
(double)(Math.round(sd3*10000)/10000.0);
這樣為保持4位
(double)(Math.round(sd3*100)/100.0);
這樣為保持2位.
--BigDecimal
//保留小數點後兩位小數
publicdoubleNumber2(doublepDouble)
{
BigDecimalbd=newBigDecimal(pDouble);
BigDecimalbd1=bd.setScale(2,bd.ROUND_HALF_UP);
pDouble=bd1.doubleValue();
longll=Double.doubleToLongBits(pDouble);
returnpDouble;
}
格式化輸出數字
--NumberFormat
--java.text包中的一些包可以處理這類問題。下面的簡單範例使用那些類解決上面提出的問題:
importjava.text.NumberFormat;
importjava.util.Locale;
publicclassDecimalFormat1{
publicstaticvoidmain(Stringargs[]){
//得到本地的預設格式
NumberFormatnf1=NumberFormat.getInstance();
System.out.println(nf1.format(1234.56));
//得到德國的格式
NumberFormatnf2=
NumberFormat.getInstance(Locale.GERMAN);
System.out.println(nf2.format(1234.56));
}
}
--DecimalFormat
importjava.text.DecimalFormat;
importjava.util.Locale;
publicclassDecimalFormat2{
publicstaticvoidmain(Stringargs[]){
//得到本地的預設格式
DecimalFormatdf1=newDecimalFormat("####.000");
System.out.println(df1.format(1234.56));
//得到德國的格式
Locale.setDefault(Locale.GERMAN);
DecimalFormatdf2=newDecimalFormat("####.000");
System.out.println(df2.format(1234.56));
}
}
C. java怎樣用float 保留2位有效小數 例如:64.02 64.00
public class Hello{
public static void main(String[] args){
float f = 12f;
java.text.DecimalFormat df = new java.text.DecimalFormat("#0.00");
String sf = df.format(f);
System.out.println();
}
}
D. java float類型默認小數點後幾位
你好,float,double默認值為0.0;
java中float,double的小數點後面限制位數的方法
我以一個小數點後面保留兩位為例:(都是四捨五入)
1.
import Java.text.DecimalFormat;
double x=23.5455;
NumberFormat format1=NumberFormat.getNumberInstance() ;
format1.setMaximumFractionDigits(2);
String s = format1.format(x);
2.
import java.text.DecimalFormat;
DecimalFormat format2 = new DecimalFormat( "0.00 ");
double x=23.5455;
x = Double.parseDouble(format2.format(x));
最近想到第三種方法:
3.下面我以小數點後面兩位為例,先擴大100倍進行四捨五入,然後除以100轉為double就可以,我喜歡這方法,就可以不用去記住其他方法了。***3位小數為1000,4位則10000
double x=23.5455;
x = (double)Math.round((double)(x*100))/100;
E. 請問java提供什麼方法實現將一個浮點數,四捨五入只保留小數點後兩位
第一:從資料庫讀出時可以進行操作,將讀出的數據進行處理後輸出,這里可以用資料庫提供的方法。這里不多提。
第二:也可以用JAVA進行處理,方法很多。
這里說兩種吧:
第一
BigDecimal bd = new BigDecima("5.14881");
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP); System.out.println(bd);
第二
static double convert(double value){
long l1 = Math.round(value*100); //四捨五入
double ret = l1/100.0; //注意:使用 100.0 而不是 100
return ret;
}
public static void main(String[] args) {
// BigDecimal bd = new BigDecimal("3.14159265");
// bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
double bd = convert(3.14559);
System.out.println(bd);
}
F. java中float類型保留2位小數,第3位值>0就向第二位進1 怎樣實現
可以直接通過判斷第三位的值,如果第三位乘以1000,之後對10求余,如果大於0,直接給第二位加上一個值「10」,在除以1000即可。
float f1 = 3.222f;
int num = (int) (f1 * 1000);
if (num % 10 > 0)
f1 = (num -num % 10 + 10 * 1.0f) / 1000.0f;
else
f 1= num * 1.0f / 1000.0f;
System.out.println(f);
輸出結果:3.23.