A. 如何將一個double類型的數四捨五入保留兩位小數
方式一:
四捨五入
double f = .5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
保留兩位小數
---------------------------------------------------------------
方式二:
java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");
df.format(你要格式化的數字);
例:new java.text.DecimalFormat("#.00").format(3.)
#.00 表示兩位小數 #.0000四位小數 以此類推
方式三:
double d = 3.;
String result = String .format("%.2f");
%.2f %. 表示 小數點前任意位數 2 表示兩位小數 格式後的結果為f 表示浮點型
方式四:
NumberFormat ddf1=NumberFormat.getNumberInstance() ;
void setMaximumFractionDigits(int digits)
digits 顯示的數字位數
為格式化對象設定小數點後的顯示的最多位,顯示的最後位是舍入的
B. c語言的關於 : 對一個double型數據進行四捨五入運算
對double數據類型進行四捨五入運算,可以利用double轉為整型時強製取整來做到。
1
將double類型數據,強制轉換為int類型,會強制截取整數部分。
比如double
a
=
1.23;
(int)a的值就是1。
2
由於是強製取整,所以即使是1.9轉為int後,同樣是1,這與四捨五入的要求不符。所以可以轉換一下演算法,做(int)(a+0.5)就可以實現四捨五入到整數的效果了。
3
要實現四捨五入到某一位,可以先乘一個值,將該位移動到個位,取整後,再除上這個值,將其移動回去。
比如將double
a
=
1.2345四捨五入保留2位小數,可以寫作
(int)(a*100+0.5)/100.0。
C. 安卓網路請求拿到的數據明明是1 為啥是double型
對double數據類型進行四捨五入運算,可以利用double轉為整型時強製取整來做到。 1 將double類型數據,強制轉換為int類型,會強制截取整數部分。 比如double a = 1.23; (int)a的值就是1。 2 由於是強製取整,所以即使是1.9轉為int後,同樣是1,這與四捨五入的要求不符。所以可以轉換一下演算法,做(int)(a+0.5)就可以實現四捨五入到整數的效果了。 3 要實現四捨五入到某一位,可以先乘一個值,將該位移動到個位,取整後,再除上這個值,將其移動回去。 比如將double a = 1.2345四捨五入保留2位小數,可以寫作 (int)(a*100+0.5)/100.0。
D. android 誰能解釋下這段代碼什麼意思
程序的意義:把浮點的千分位進行四捨五入,
這種演算法的實用意義並不大,因為浮點數並不是十進製表示的,是不精確的,
當重新轉換成浮點數後,也是不精確的,浪費了計算時間,只有最終轉換成
十進制字元串時才有實用意義。
先將數字前推兩位,然後強制轉型成整形丟失後面的位數。然後做差得到相差的數值。一個判斷是來判斷第三位(已經進了兩位咯)是大於5的還是小於5的,大於五就進位。最後進行還原,返回四捨五入的數值。
比如: 13.36 很可能重新變成 12.359999999998 之類的情況
這段代碼是一個if函數,double的具體長度可以根據資料進行詳細查找就可以了。
E. android中如何實現除法的保留小數點後2位,四捨五入!
android實現保留小數點後2位,四捨五入,就是java語言的實現,可以使用java提供的round(double a)函數,實現四捨五入的計算。
public static double round(Double v, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = null == v ? new BigDecimal("0.0") : new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
BigDecimal 這個類是在jdk4.0之後引入的,目的就是為了獲得更精確的小數位,以便於計算。
F. 編寫程序,對一個double型數據進行四捨五入運算,要求保留兩位有效小數
例如double型的數據為a=5.1413,程序如下:
#incloud <stdio.h>
main( )
{
double a;
printf("請輸入一個double型數據:」);
a= int (a*100+0.5)/100 ;
printf("%lf",a)。
}
這時候printf輸出的結果將是5.14。
(6)androiddouble四捨五入擴展閱讀:
C語言編寫程序,對double型數據進行四捨五入,保留三位有效數字,程序如下:
這里以b=8.8888
#incloud <stdio.h>
main( )
{
double b;
printf("請輸入一個double型數據:」);
b= int (b*1000+0.5)/1000;
printf("%lf",b)。
}
這時候printf輸出的結果將是8.889。
G. double四捨五入保留兩位小數
我猜測如下,因為4.015,小數部分的0.015表示成2進制數時是無限循環的,因此用double型表示4.015時,由於double的位數有限,所以只能用一個略小於4.015的數(肯定是略小於,因為只有位數無限時,這個2進制數才能等於0.015)去近似表示4.015,假設這個數是4.0149......,那麼乘100後是401.49......,Math.round後是401。
H. double四捨五入
與編譯環境有關,TC、BC是52,VC是53。一般四捨五入是自動進行的。
I. 關於android Math.round方法四捨五入的問題
電腦不會四捨五入,他執行的僅僅是簡單的保留幾位小數而已