導航:首頁 > 編程語言 > javadouble取整

javadouble取整

發布時間:2022-09-23 08:39:50

java中double四捨五入問題

(1)首先我們想到用先乘以100取整後再除以100.0這種做法:
System.out.println(Math.round(4.015*100)/100.0);
執行結果為4.01,顯然沒有達到我們想要的結果。

(2)那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
執行結果都為4.02。

(3)用java.math.BigDecimal.
Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
提供用於執行任意精度整數演算法 (BigInteger) 和任意精度小數演算法 (BigDecimal) 的類。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());

結果:4.01 (當使用4.025時結果為4.03)
看來還是達不到效果。

(4)用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);

Ⅱ Java中怎麼把浮點數轉變成整數只保留整數部分

通過轉換為字元串,再截取整數部分:

float a = 1.1f;//定義一個浮點變數a

String str = String.valueOf(a);//浮點變數a轉換為字元串str

int idx = str.lastIndexOf(".");//查找小數點的位置

String strNum = str.substring(0,idx);//截取從字元串開始到小數點位置的字元串,就是整數部分

int num = Integer.valueOf(strNum);//把整數部分通過Integer.valueof方法轉換為數字

展資料:

Java的浮點類型有兩種:float和double。

Java的浮點類型有固定的表數范圍和欄位長度,欄位長度和表數范圍和機器無關,double類型代表雙精度浮點數,float類型代表單精度浮點數。

Java的浮點數遵循IEEE754標准,採用二進制數據的科學計數法來表示浮點數,對於float型數值,第1位是符號位,接下里8位表示指數,再接下來的23位表示尾數;對於double類型數值,第一位也是符號位,接下來的11位表示指數,再接下來的52位表示尾數。

Ⅲ java中double型如何取整

有float類型的

向上取整:Math.ceil() //只要有小數都+1
向下取整:Math.floor() //不取小數
四捨五入:Math.round() //四捨五入

Ⅳ 關於java double 小數向上取整處理

public static double getCeil(double d,int n){
BigDecimal b = new BigDecimal(String.valueOf(d));
b = b.divide(BigDecimal.ONE,n,BigDecimal.ROUND_CEILING);
return b.doubleValue();
}

Ⅳ java中如何取整

通過(int)方式進行取整,(int)是強轉,強制把其他類型轉換成整型。

語法:

int b =(int)浮點型變數;

例如:

doublea=1.22;
intb=(int)a;//強轉double為整型。,取整,結果為1

Ⅵ 如何完美獲得一個double值的整數部分

使用強制類型轉換,強制捨去小數部分。例如double a=3.14; int b= (int)a;使用math.h的標准函數。double floor(double x),double ceil(double x),使用floor函數。floor(x)返回的是小於或等於x的最大整數。

浮點運算就是實數運算,因為計算機只能存儲整數,所以實數都是約數,這樣浮點運算是很慢的而且會有誤差。大多數機器都是32位的,也就是說32位都用來表示整數的話,那麼對於無符號整數就是0 到 2^32-1,對於有符號的話就是-2^31 到 2^31-1。



相關信息

當我們用不同的電腦計算圓周率時,會發現一台電腦的計算較另一台來講結果更加精確。或者我們在進行槍戰游戲的時候,當一粒子彈擊中牆壁時,牆上剝落下一塊牆皮,同樣的場面在一台電腦上的表現可能會非常的呆板、做作;而在另外一台電腦上就會非常生動形象。

甚至與我們在現實中看到的所差無幾。這都是浮點運算能力的差異導致的。如果是實數的話,就不是這樣了,機器有兩種辦法表示實數,一種是定點,就是小數點位置是固定的,一種是浮點,就是小數點位置不固定,計算方法也比較麻煩,通常會比整數運算代價大很多。

Ⅶ java怎麼把double四捨五入

(1)首先我們想到用先乘以100取整後再除以100.0這種做法:
System.out.println(Math.round(4.015*100)/100.0);
執行結果為4.01,顯然沒有達到我們想要的結果。

(2)那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
執行結果都為4.02。

(3)用java.math.BigDecimal.
Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
提供用於執行任意精度整數演算法 (BigInteger) 和任意精度小數演算法 (BigDecimal) 的類。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());

結果:4.01 (當使用4.025時結果為4.03)
看來還是達不到效果。

(4)用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);

Ⅷ 在java中怎麼對一個數字取整

public class EXC {
public static void main(String[] args) {
//如果是將 一個 float或double類型的小數 轉換為整數 如下:
//利用java的強制類型轉換規則
double d = 12.3;
int i = (int)d;
System.out.println(i);

//如果是將一個表示小數的 字元串轉換為整數 如下:
//利用Integer包裝類
String s = "12.3";// 或12.3f
i = Integer.parseInt(s.split("\\.")[0]);
System.out.println(i);

}
}

閱讀全文

與javadouble取整相關的資料

熱點內容
壓縮餅干不好代謝嗎 瀏覽:97
從u盤啟動輸入命令 瀏覽:604
布列松pdf 瀏覽:459
mysqljava教程 瀏覽:842
基金查收益哪個app准 瀏覽:697
怎麼學習人工智慧演算法 瀏覽:492
安卓手機接通電話黑屏怎麼回事 瀏覽:770
網上買書哪個app正版 瀏覽:990
混亂編程大賽 瀏覽:29
靈異pdf 瀏覽:618
助劑手冊pdf 瀏覽:427
奧迪a6l如何升級安卓 瀏覽:565
編譯器分配單元 瀏覽:265
投客網用哪個app好 瀏覽:135
米家伺服器怎麼安裝視頻教程 瀏覽:984
什麼是識別符編譯原理 瀏覽:650
pdf圖片識別文字 瀏覽:89
如何更改Tomcat伺服器域名 瀏覽:6
安卓手機怎麼設置一個號碼關機 瀏覽:122
51單片機散件套件 瀏覽:663