㈠ java中小數怎麼四捨五入
按照你的要求為不確定保留幾位小數的字元串做四捨五入的Java程序如下
import java.math.BigDecimal;
public class A {
public static void main(String[] args) {
String s="0.00000999999997";
//四捨五入,length是小數位數
int length=s.substring(s.indexOf(".")+1).length();
String s1=String.format("%."+(length-1)+"f",new BigDecimal(s));
//去尾部0
BigDecimal bd=new BigDecimal(s1).stripTrailingZeros();
System.out.println(bd.toPlainString());
}
}
㈡ java兩個數相除後保留兩位小數 (四捨五入),並且結果大於三位數要有千位分隔符,不是整數時,小數點前三
public static void main(String[] args) {
System.out.println(test(2, 0.7)); //參數為int和double 結果=2.86
System.out.println(test(11111111111113L, 4.5)); // 參數為long和double 結果=2,469,135,802,469.56
System.out.println(test("234567", "3.14159")); // 參數為字元串 結果=74,665.06
}
private static String test(Object a, Object b) { // 參數類型任意(只要是number),返回總是字元串
// 下面這一行里的2,表示保留小數點後多少位(四捨五入),如果兩位就是2,如果小數點前三,就改成3.
BigDecimal result = new BigDecimal(String.valueOf(a)).divide(new BigDecimal(String.valueOf(b)), 2, BigDecimal.ROUND_HALF_UP);
return new DecimalFormat("###,###.###").format(Double.valueOf(result.toString())).toString();
}
㈢ 請問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);
}
㈣ java中保留兩位小數並要求四捨五入的方法
doubled=2.345;
//格式化為String
Stringstr=String.format("%.2f",d);
System.out.println(str);
//如果需要數字,可以再d=Double.parseDouble(str)
//////////////
BigDecimalbd=newBigDecimal("2.345");//建議使用String參數
BigDecimalbd_half_even=bd.setScale(2,RoundingMode.HALF_EVEN);
BigDecimalbd_half_up=bd.setScale(2,RoundingMode.HALF_UP);
System.out.println(bd_half_even);
System.out.println(bd_half_up);
//HALF_EVEN,HALF_UP是兩種不同的四捨五入機制
//BigDecimal默認使用HALF_EVEN
//HALF_UP的效果就是經典的四捨五入
//HALF_EVEN是最科學的四捨五入,但結果和HALF_UP可能會不同
㈤ java怎麼強制轉換取2位小數,四捨五入
因為你要保留兩位小數,而且要四捨五入,這就是個演算法而已,你用數來帶就明白了
比如1.056*100+0.5=106.1,取整局喚毀(不大於這個數的整數)就等於106,然後除100=1.06了,加0.5是保證第三位大於5就進位,小鏈歷於5的話就桐備回在取整的時候被略掉,如1.054*100+0.5=105.9,取整的話就等於105,除100就等於1.05了
㈥ java中四捨五入保留兩位小數,第三位正好是數字5怎麼處理
使用String.format("鎮空%.2f",num); //num是要處理的數據搜耐
這種方法可以用float,double接收數據類型,我試了一下String接收好像會報錯,小夥伴也可以試一下。可以四捨五入保留兩位小數,但是小數點第二位是0的話會不顯示。以下代碼用到此方法世旅春的語句:value.add(Double.valueOf ( String.format("%.2f", Double.valueOf(list.get(3).replace("\"", ""))*100)));
㈦ 如何把java得出的數值,保留小數點2位四捨五入
我寫的C語言的演算法,應該你可以轉換下吧?呵呵!
就是通過整形數據的特點了;
例如該變數為float
x;浮點型數據
四捨五入的演算法為:
{int
i=0;
整型數據;
i=(2*x*100+1)/2;
x=(float)i/100;
}
當保留小數點後兩位是用100;3為是1000,1位是當然是10了;
明白?
唉!沒學過,看著有點困難。
㈧ java如何取小數點前兩位,並四捨五入
取銀穗小數點差搏巧前兩位,並四捨五入:
doublem=7237.3589
一、
DecimalFormatdf=虛鍵newDecimalFormat("#.00");
System.out.println(df.format(m));
二、
System.out.println(String.format("%.2f",m));
㈨ 如何把java得出的數值,保留小數點2位四捨五入
// 方式一:
double f = 3.1516;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 方式二:
new java.text.DecimalFormat("#.00").format(3.1415926);
// #.00 表示兩位小數 #.0000四位小數 以此類推…
// 方式三:
double d = 3.1415926;
String result = String.format("%.2f", d);
// %.2f %. 表示 小數點前任意位數 2 表示兩位小數 格式後的結果為f 表示浮點型。
//方法四:
Math.round(5.2644555 * 100) * 0.01d;
//String.format("%0" + 15 + "d", 23) 23不足15為就在前面補0
㈩ java四捨五入 保留兩位小數
因為double型小數部分會在從二進制變十進制的類型變換中產生誤差,所以x2會變成-3.80000000000003,如果要使輸出四捨五入 保留兩位小數,可以用String的format函數,方法如下:
System.out.println(String.format("%.2f", x1));
System.out.println(String.format("%.2f", x2));