java中处理精度要求高的数据避免用double,用BigDecimal

package com.test;

import java.io.Console;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;

public class M1001 {
    public static void main(String[] agrs){
    /*  Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        System.out.println(line);
    */
        int[] a = {1,2,3,4};
        int[] b = new int[10];
        System.out.println(Arrays.toString(a));
        System.arraycopy(a, 0, b, 2, 3);
        System.out.println(Arrays.toString(b));
        System.out.println("------------Random---------------");
        for(int i:a){
            int ranNumer =  (int)(Math.random()*100)+1;
            System.out.println(ranNumer);   
        }
        BigInteger BigNumber = new BigInteger("1234567890");
        BigInteger Number = new BigInteger("123123131231313");
        System.out.println(Number.add(BigNumber).toString());
        System.out.println("-----------double----------------");
        double Num1 = 0.09 ;
        double Num2 = 0.01 ;
        System.out.println(Num1+Num2);
        System.out.println("--------------BigDecimal数字传入-------------");
        BigDecimal Num11 = new BigDecimal(0.09);
        BigDecimal Num22 = new BigDecimal(0.01);
        System.out.println(Num11.add(Num22));
        System.out.println("------------BigDecimal字符串传入,推荐使用---------------");
        BigDecimal BigDoubleNum1 = new BigDecimal("0.09");
        BigDecimal BigDoubleNum2 = new BigDecimal("0.01");
        System.out.println(BigDoubleNum1.add(BigDoubleNum2).toString());
        System.out.println("-------------end--------------");
    }

}

运行结果:
[1, 2, 3, 4]
[0, 0, 1, 2, 3, 0, 0, 0, 0, 0]
————Random—————
66
33
42
19
123124365799203
———–double—————-
0.09999999999999999
————–BigDecimal数字传入————-
0.09999999999999999687749774324174723005853593349456787109375
————BigDecimal字符串传入,推荐使用—————
0.10
————-end————–

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值