「java中取小数的方法」java获取小数位数

博主:adminadmin 2023-01-16 16:27:07 575

今天给各位分享java中取小数的方法的知识,其中也会对java获取小数位数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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中怎么把字符串中的小数取出来。

public class exp {

public static void main(String[] args) {

String str = "12.3*5.2+8.6";

String[] s1 = str.split("[*]");

System.out.println(s1[0]);

String[] s2 = s1[1].split("[+]");

System.out.println(s2[0]);

System.out.println(s2[1]);

}

}

,+、*、|、\等符号在正则表达示中有相应的不同意义。

一般来讲只需要加[]、或是\\即可

java怎么取实数中的小数部分

首先楼上那两位对于普通的使用场景来说基本是正确的。但是在一些需要精确结果的场景中(比如货币金额计算),double就会有问题了,比如:

(int)1023.99999999999999=1024;

再比如:

double n1=0.03;

double n2=0.02;

double n3=n1-n2;

System.out.println(n3);//0.009999999999999998

所以如果需要精确安全的操作的话,需要用到这个类:java.math.BigDecimal

调用它的divideAndRemainder方法来进行计算,该计算可以理解为:进行一次保留余数的除法运算。结果会返回一个BigDecimal类型且长度为2的数组,0下标的元素是该计算的商,1下标的元素是该结果的余数。

BigDecimal n4=new BigDecimal("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中取小数的方法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取小数位数、java中取小数的方法的信息别忘了在本站进行查找喔。