添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
BigDecimal bigDecimal1 = new BigDecimal("25.1235");
// 整数部分
BigDecimal integerPart = bigDecimal1.setScale(0, RoundingMode.DOWN);
// 小数部分
BigDecimal fractionalPart = bigDecimal1.subtract(integerPart);
System.out.println("integerPart:" + integerPart);
System.out.println("fractionalPart:" + fractionalPart);
System.out.println(fractionalPart.doubleValue() > 0);
// integerPart:25
// fractionalPart:0.1235
// true
BigDecimal bd = new BigDecimal("12.1");
long l  = bd.setScale( 0, BigDecimal.ROUND_UP ).longValue(); // 向上整
long l  = bd.setScale( 0, BigDecimal.ROUND_DOWN ).longValue()...
在前面的章节中,我们自定了一个判断大数值是否为整数的方法,今天我们针对这个方法进行展开论述。
我们可以想象一下:既然能够判断一个数值是否为整数,那么就应该有机会将它的整数部分小数部分分割开来,也就是我们常说的整(它同时包含了小数),在我们初学JAVA时,我们常用的方法是强制转换,或者利用BigDecimal.ROUND语句来进行保留0位小数。今天我们用另一个方法来处理,实现整(小数)、特定位数的数值、保留几位小数、以及所有自幂数的输出。这个方法是不涉及精度处理的,也没有强制意味。
Java在计算浮点数的时候,由于二进制无法精确表示0.1的值(就好比十进制无法精确表示1/3一样),所以一般会对小数格式化处理.
但是如果涉及到金钱的项目,一点点误差都不能有,必须使用精确运算的时候,就可以使用BigDecimal方法计算.
但是在使用中还需要注意一个问题:
//直接使用double类型数据进行运算
System.out.println(0.05+0.01);
//使用BigDecimal的double参数的构造器
BigDecimal bd1 = new B
public static void main(String[] args){		double sun=1;	//注意数据类型的范围大小。		for(int i=1;i<=100;i++){			sun=sun*i;		}		System.err.println("1到100的阶乘是"+sun);	}		
		public static void main...
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.math.BigDecimal;
public class CommonUtil {
	 * 验证数字的整数位长度及小数据位长度
	 * @param str
	 * @param integ
-0.1203456789,当精度为3的时候,按照round_up模式,结果是-0.121
注意:0.1891,当精度为3的时候,按照round_up模式,结果是0.19,自动去掉了9后面的0
而当0.91,当精度为1的时候,按照round_up模式
public class Main {
    public static void main(String[] args) {
        BigDecimal bd = new BigDecimal("123.456");
        BigDecimal integerPart = bd.setScale(0, BigDecimal.ROUND_DOWN);
        BigDecimal fractionalPart = bd.remainder(BigDecimal.ONE);
        System.out.println("整数部分:" + integerPart);
        System.out.println("小数部分:" + fractionalPart);
输出结果为:
整数部分:123
小数部分:0.456
在上面的代码中,我们首先创建了一个 `BigDecimal` 对象 `bd`,然后通过 `setScale` 方法将其设置为不保留小数位,从而得到了整数部分。接着,我们使用 `remainder` 方法获取了 `bd` 的小数部分 `fractionalPart`。
需要注意的是,`remainder` 方法返回的是 `BigDecimal` 对象,我们可以通过它的 `toString` 方法将其转换为字符串输出。