Ⅰ 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怎麼讓兩個數相除的商保留25位小數
兩個數相除的商是9.938,如果保留兩位小數應該是9.94,精確到十分位是9.9,保留整數是10;
故答案為:9.94,9.9,10.
Ⅲ java的int相除如何保留小數點兩位,例如2/3後獲得0.67
先將int轉換為浮點數
Ⅳ java 實現兩個數相除並保留小數點後一百位,再求出循環體
double a = 4.0 ;
double b = 3.0 ;
int num = 100 ; // 保留多少位小數
double c = new BigDecimal("" + a/b).setScale(num, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(c); System.out.println(c);
在求出循環體是什麼意思?
Ⅳ java 除法怎樣取小數部分
(((double)lili1)/lili)
-
(lili1/lili)就可以了,如果想顯示出小數,必須要將數值轉換為float或double類型才可以,推薦double類型
Ⅵ java 兩個整數相除 結果為一位小數
double ans = 3/4;
因為ans的類型為double
其實你這個式子就和
double ans=0是等價的,雖然是給的整數,但在儲存的時候,已經做了隱式類型轉換為double了,輸出時會按類型格式輸出,double當然要保留小數位,另外,他的小數不是四捨五入得來的,而是空位補0。
3/4明顯大於0.5,四捨五入的話應該為1才對
Ⅶ java怎麼保留兩位小數
java自帶api是沒有保留兩位小數的,需要自己去封裝定義
Ⅷ java 兩個數相除後四捨五入並保留兩位小數有哪些方式
1 double f = 3.1516;
BigDecimal b = new BigDecimal(f);
2 double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()
new java.text.DecimalFormat("#.00").format(3.1415926)
3 double d = 3.1415926;
String result = String.format("%.2f", d);
// %.2f %. 表示 小數點前任意位數 2 表示兩位小數 格式後的結果為f 表示浮點型。
4 Math.round(5.2644555 * 100) * 0.01d;
//String.format("%0" + 15 + "d", 23) 23不足15為就在前面補0
Ⅸ java 如何保留數據後兩位小數
保留兩位小數,也就是保留到百分位,要看千分位上的數,如果千分位上的數大於等於5,就向百分位上進一位,如果千分位上的數小於5,就捨去。
Ⅹ Java中怎麼把除法精確到小數點後100位
JAVA中如何對double或者float的浮點數進行精度計算,
在JAVA中提供了多種參數來實現精度的不同控制方式。
具體例子如下:
package com.soft4j.utility;
import java.math.BigDecimal;
/**
* 與小數位精度(四捨五入等)相關的一些常用工具方法.
*
* float/double的精度取值方式分為以下幾種: <br>
* java.math.BigDecimal.ROUND_UP <br>
* java.math.BigDecimal.ROUND_DOWN <br>
* java.math.BigDecimal.ROUND_CEILING <br>
* java.math.BigDecimal.ROUND_FLOOR <br>
* java.math.BigDecimal.ROUND_HALF_UP<br>
* java.math.BigDecimal.ROUND_HALF_DOWN <br>
* java.math.BigDecimal.ROUND_HALF_EVEN <br>
*
* @author stephen
* @version 1.0.0
*/
public final class RoundTool {
/**
* 對double數據進行取精度.
* <p>
* For example: <br>
* double value = 100.345678; <br>
* double ret = round(value,4,BigDecimal.ROUND_HALF_UP); <br>
* ret為100.3457 <br>
*
* @param value
* double數據.
* @param scale
* 精度位數(保留的小數位數).
* @param roundingMode
* 精度取值方式.
* @return 精度計算後的數據.
*/
public static double round(double value, int scale, int roundingMode) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(scale, roundingMode);
double d = bd.doubleValue();
bd = null;
return d;
}
/**
* 測試用的main方法.
*
* @param argc
* 運行參數.
*/
public static void main(String[] argc) {
//下面都以保留2位小數為例
//ROUND_UP
//只要第2位後面存在大於0的小數,則第2位就+1
System.out.println(round(12.3401,2,BigDecimal.ROUND_UP));//12.35
System.out.println(round(-12.3401,2,BigDecimal.ROUND_UP));//-12.35
//ROUND_DOWN
//與ROUND_UP相反
//直接舍棄第2位後面的所有小數
System.out.println(round(12.349,2,BigDecimal.ROUND_DOWN));//12.34
System.out.println(round(-12.349,2,BigDecimal.ROUND_DOWN));//-12.34
//ROUND_CEILING
//如果數字>0 則和ROUND_UP作用一樣
//如果數字<0 則和ROUND_DOWN作用一樣
System.out.println(round(12.3401,2,BigDecimal.ROUND_CEILING));//12.35
System.out.println(round(-12.349,2,BigDecimal.ROUND_CEILING));//-12.34
//ROUND_FLOOR
//如果數字>0 則和ROUND_DOWN作用一樣
//如果數字<0 則和ROUND_UP作用一樣
System.out.println(round(12.349,2,BigDecimal.ROUND_FLOOR));//12.34
System.out.println(round(-12.3401,2,BigDecimal.ROUND_FLOOR));//-12.35
//ROUND_HALF_UP [這種方法最常用]
//如果第3位數字>=5,則第2位數字+1
//備注:只看第3位數字的值,不會考慮第3位之後的小數的
System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_UP));//12.35
System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_UP));//12.34
System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_UP));//-12.35
System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_UP));//-12.34
//ROUND_HALF_DOWN
//如果第3位數字>=5,則做ROUND_UP
//如果第3位數字<5,則做ROUND_DOWN
System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_DOWN));//12.35
System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_DOWN));//12.34
System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_DOWN));//-12.35
System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_DOWN));//-12.34
//ROUND_HALF_EVEN
//如果第3位是偶數,則做ROUND_HALF_DOWN
//如果第3位是奇數,則做ROUND_HALF_UP
System.out.println(round(12.346,2,BigDecimal.ROUND_HALF_EVEN));//12.35
System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_EVEN));//12.35
}
}
相關文章:
《Double精度的常用設置》
http://henry406.javaeye.com/blog/459669
import java.text.DecimalFormat;
import java.math.BigDecimal;
public class Test_Double{
public static void main(String[] args){
//-----方法1--------四捨五入 round對負數是五舍六入
double d_1 = 123.9;
System.out.println("d_1 = "+Math.round(d_1));
//-------方法2------------------
DecimalFormat decfmt = new DecimalFormat("##0.00");
System.out.println(decfmt.format(1.33482222));
//--------方法3--------------
double x = 1.33345;
java.text.NumberFormat formate = java.text.NumberFormat.getNumberInstance();
formate.setMaximumFractionDigits(3);//設定小數最大為數,那麼顯示的最後會四捨五入的
String m = formate.format(x);
System.out.println(m);
//--------方法4--------------
BigDecimal bd = new BigDecimal(1.234543);
bd = bd.setScale(3,BigDecimal.ROUND_HALF_EVEN);
double d = bd.doubleValue();
System.out.println(d);
//--------取消科學計數法-------------
Double dValue = Double.valueOf("276363652844.8477474");
System.out.println(dValue);
BigDecimal original = new BigDecimal(dValue.doubleValue());
BigDecimal result = original.setScale(2, BigDecimal.ROUND_HALF_DOWN);
String test = result.toString();
System.out.println(test);
}
}