java取小數
① java有一個小數,如何去掉小數部分
1、Math.round(float f)對小數部分四捨五入
或者強值類型轉換成int類型,直接去掉小數部分!
2、
3、向上取整:Math.ceil() //只要有小數都+1
向下取整:Math.floor() //不取小數
四捨五入:Math.round() //四捨五入
② java中 double型取小數部分
double
dd =
123.45;
//設數值則派仔
int
j
=
(int)Math.round(dd*
100);
//羨並小數點後兩位前移,並四捨五入
double
k
=
(double)j
/
100.00;
//還原小孫汪數點後兩位
③ java中取小數部分
import java.math.BigDecimal;
import java.util.Scanner;
public class GetFloat {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
float f = in.nextFloat();
int fInt = (int) f;
BigDecimal b1 = new BigDecimal(Float.toString(f));
BigDecimal b2 = new BigDecimal(Integer.toString(fInt));
float fPoint = b1.subtract(b2).floatValue();
System.out.println("整數部分為:" + fInt + "\n" + "小數部分為: " + fPoint);
}
}
④ java怎麼取實數中的小數部分
首先樓上那兩位對於普通的使用場景來說基本是正確的。但是在一些需要精確結果的場景中(比如貨幣金額計算),double就會有問題了,比如:
(int)1023.99999999999999=1024;
再比如:
doublen1=0.03;
doublen2=0.02;
doublen3=n1-n2;
System.out.println(n3);//0.009999999999999998
所以如果需要精確安全的操作拿漏的話,需要用到這個類:java.math.BigDecimal
調用它的divideAndRemainder方法來進行計算,該計算可以理解為:進行一次保消拿爛留余數的除法運算。結果會返回一個BigDecimal類型且長度為2的數組,0下標的元素敏睜是該計算的商,1下標的元素是該結果的余數。
BigDecimaln4=newBigDecimal("1023.99999999999999");
BigDecimal[]result=n4.divideAndRemainder(BigDecimal.valueOf(1));
System.out.println(result[1].toString());//0.99999999999999
注意,構造BigDecimal對象的時候我使用的是字元串String類型的「1023.99999999999999
」,如果直接寫1023.99999999999999的話會被認為是double類型的數,然後double類型的該值為1024.0,所以給字元串類型的值可以保證BigDecimal對象接收到的數就准確無誤是我們心裡想的數。
⑤ java 除法怎樣取小數部分
(((double)lili1)/lili)
-
(lili1/lili)就可以了,如果想顯示出小數,必須要將數值轉換為float或double類型才可以,推薦double類型
⑥ java 取兩位小數 不要四捨五入怎麼做
對一個小數點後有多位數的實數,取兩位小數而不四捨五入,有兩種方案:
乘100再強轉成int,再除以100就得到了想要的晌困橘埋數
也可以寫一個小工宴伍念具,以便以後重復使用,代碼如下:
/**
*a為一個帶有未知位小數的實數
*對其取b位小數
*@parama
*@paramb
*@return
*/
staticdoublegetDouble(doublea,intb){
intx=0;
inty=1;
for(inti=0;i<b;i++){
y=y*10;
}
System.out.println(y);
x=(int)(a*y);
System.out.println("x="+x);
return(double)x/y;
}