首页 > 编程语言 >37_Java中的浮点数精确运算

37_Java中的浮点数精确运算

时间:2023-01-07 10:35:27浏览次数:48  
标签:Java BigDecimal 浮点数 37 System bd1 bd2 println out

java中的BigDemcimal

用于小数的精确运算

构造方法:

​ BigDecimal(String val)

四则运算:

​ add(BigDecimal b):加法

​ subtract(BigDecimal b):减法

​ multiply(BigDecimal b):乘法

​ divide(BigDecimal b):除法

参考代码:

package com.itheima;

import java.math.BigDecimal;

/*
    基本使用:用于小数的精确计算
 */
public class BigDecimalDemo01 {
    public static void main(String[] args) {
        //double、float只是用于科学计算,但是不够精确
        System.out.println(0.1 + 0.2);  //0.3
        System.out.println(0.1 - 0.2);  //-0.1
        System.out.println(0.1 * 0.2);  //0.02
        System.out.println(0.1 / 0.2);  //0.5

        System.out.println("----------");

        //使用BigDecimal类解决
        BigDecimal bd1 = new BigDecimal("0.1");
        BigDecimal bd2 = new BigDecimal("0.2");
        System.out.println(bd1.add(bd2));
        System.out.println(bd1.subtract(bd2));
        System.out.println(bd1.multiply(bd2));
        System.out.println(bd1.divide(bd2));
    }
}

除法运算遇到除不尽时:

​ public BigDecimal divide(另一个BigDecimal对象,精确几位,舍人模式)

​ RoundingMode.UP:进一法

​ RoundingMode.FLOOR:去尾法

​ ROundingMode.HALF_UP:四舍五入

参考代码:

package com.itheima;

import java.math.BigDecimal;
import java.math.RoundingMode;

/*
    除法运算:
		public BigDecimal divide(另一个BigDecimal对象,精确几位,舍人模式)
		RoundingMode.UP:进一法
		RoundingMode.FLOOR:去尾法
		RoundingMode.HALF_UP:四舍五入
 */
public class BigDecimalDemo02 {
    public static void main(String[] args) {
        //使用BigDecimal类解决
        BigDecimal bd1 = new BigDecimal("10.0");
        BigDecimal bd2 = new BigDecimal("3.0");

//        System.out.println(bd1.divide(bd2));  //除不尽

        /*
            参数1:表示参与计算的BigDecimal对象
            参数2:表示小数点后面精确多少位
            参数3:舍入模式
         */

        System.out.println(bd1.divide(bd2, 2, RoundingMode.UP));
        System.out.println(bd1.divide(bd2, 2, RoundingMode.FLOOR));
        System.out.println(bd1.divide(bd2, 2, RoundingMode.HALF_UP));
    }
}

标签:Java,BigDecimal,浮点数,37,System,bd1,bd2,println,out
From: https://www.cnblogs.com/fragmentary/p/17032194.html

相关文章

  • 38_Java中的注解
    java中的注解1、注解概述@Ovrride:用来修饰方法,表示该方法是重写父类的方法,如果不是,就会报错注解(Annotation):也叫元数据,一种代码级别的说明,它是JDK1.5及以后版本引......
  • 39_Java中的单元测试
    单元测试单元测试概述:​ 在程序中,一个单元可以时一个完整的模块,但它通常是一个单独的方法或者程序​ 在面向对象的编程中,一个单元通常是整个界面,例如类,但可能是......
  • 34_Java8 日期API
    Java8日期APIDate如果不格式化;输出的日期可读性差;而Java8的时间类直接输出可读性好Date存在线程安全问题;而Java8的时间类都是线程安全的JDK8新增日期类:​ Loc......
  • JAVA的方法
    什么是方法方法是语句的集合,他们在一起执行一个功能。方法是解决问题的步骤的有序组合。方法包含于类或对象中。方法在程序中被创建,在其他地方被引用。方法的组......
  • 用Java方法和循坏的计算器
    importjava.util.Scanner;publicclassPractise{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);//创建一个对象用......
  • 认识 Java 中的 StringBuilder 类
    Stringstr="hello"; System.out.println(str); System.out.println(str+"world"); }输出的结果是:hellohelloworld从运行结果中我们可以看到,程序运行时会额外创建......
  • java基于ssm的图书管理系统图书借阅管理网站图书管理网站源码
    简介本项目是图书借阅管理系统,主要实现了对图书的管理和借阅。演示视频https://www.bilibili.com/video/BV14p4y1H7GQ/?share_source=copy_web&vd_source=ed0f04fbb713......
  • java基于ssm的个人博客系统个人博客网站个人博客项目源码
    简介Javassm开发的个人博客系统,可以发布博客,照片,站长留言。演示视频https://www.bilibili.com/video/BV1sf4y1y7Ne/?share_source=copy_web&vd_source=ed0f04fbb713154......
  • java服装商城购物商场项目源码
    简介Java基于ssm开发的服装商城,用户可以浏览商品和特价商品,加入购物车,直接下单支付,在我的个人中心里可以管理自己的订单,收货地址,编辑资料等。管理员可以发布商品,上下架商......
  • java书店带商家商城书店多单家书店系统源码
    简介Javassm开发的多商家书店商城,用户可以浏览商品,加入购物车,直接下单支付,在我的个人中心里可以管理自己的订单,收货地址,编辑资料等,还可以申请开店,店铺开通后可以发布商品......