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;
}