首页 > 其他分享 >BigDecimal

BigDecimal

时间:2024-05-27 20:12:27浏览次数:20  
标签:0.9 BigDecimal System println new out

位置:java.math包中

作用:精确计算浮点数

创建方式:BigDecimal bd=new BigDecimal("1.0");

注意:使用的时候选择字符串

方法:

BigDecimal add(BigDecimal bd) 加法

BigDecimal subtract(BigDecimal bd) 减法

BigDecimal multiply(BigDecimal bd )乘法

BigDecimal divide(BigDecimal bd)除法

image-20240527200121683

public class Demo01 {
public static void main(String[] args) {
double d1=1.0;
double d2=0.9;
System.out.println(d1-d2);

    //面试题;下面 result输出的结果为多少
    double result=(1.4-0.5)/0.9;
    System.out.println(result);
    System.out.println("==========正确示范===========");
   // 正确解决方案:
 BigDecimal bd1=new BigDecimal("1");
 BigDecimal bd2=new BigDecimal("0.9");
 //注意:类运算时需要调用方法;本次用subtract方法做减法
 BigDecimal r1=bd1.subtract(bd2);
    System.out.println(r1);

    //加法 add
    BigDecimal r2=bd1.add(bd2);
    System.out.println(r2);

    //乘法 multiply
   BigDecimal r3= bd1.multiply(bd2);
    System.out.println(r3);
    //除法
    //面试题(1.4-0.5)/0.9=1;用BigDecimal方法实现
   BigDecimal r4=new BigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));
    System.out.println(r4);

    //10除以3题目; divide方法里面的int scale方法决定保留几位小数;BigDecimal里面的常量ROUND_HALF_UP来四舍五入。
    BigDecimal r5=new BigDecimal("10").divide( new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
    System.out.println(r5);

    BigDecimal r6=new BigDecimal("20").divide( new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
    System.out.println(r6);
}

}

标签:0.9,BigDecimal,System,println,new,out
From: https://www.cnblogs.com/anonymity12/p/18216420

相关文章

  • java list分组并对bigdecimal属性求和
    JavaList分组并对BigDecimal属性求和在Java中,我们经常需要对一个List进行分组,并对其中的BigDecimal属性进行求和操作。这种需求在实际项目中非常常见,比如在处理财务数据、统计数据等场景中。本文将介绍如何使用Java来实现这一功能,同时会提供代码示例来帮助读者更好地理解。1.使......
  • BigDecimal精度理解
    BigDecimal的类声明以及几个属性:接下来我们可以debug来看下其运行原理BigDecimalbigDecimal1=BigDecimal.valueOf(2.88);BigDecimalbigDecimal2=BigDecimal.valueOf(3.5);BigDecimalresDecimal=bigDecimal1.add(bigDecimal2);Sys......
  • Java BigDecimal出现科学计数法
    JavaBigDecimal出现科学计数法查看BigDecimal的toString()源码,可以发现出现toString()出现科学计数法的原因 privateStringlayoutChars(booleansci){...intcoeffLen=coeff.length-offset;longadjusted=-(long)scale+(coeffLen-1);......
  • 争论不休的一个话题:金额到底是用Long还是BigDecimal?
    在网上一直流传着一个争论不休的话题:金额到底是用Long还是用BigDecimal?这个话题一出在哪都会引起异常无比激烈的讨论。。。。比如说这个观点:算钱用BigDecimal是常识有支持用Long的,将金额的单位设计为分,然后乘以100,使用Long进行存储以及计算,这样不用担心小数点问题。并且一些......
  • 蓝桥杯备考随手记: BigInteger 和 BigDecimal
    在Java中,BigInteger和BigDecimal是用来处理大整数和高精度浮点数的类,分别属于java.math包。下面分别介绍这两个类的特点、用途和常用方法:BigInteger:特点:BigInteger类表示任意精度的整数,可以处理比long型和int型更大范围的整数。BigInteger是不可变的(immutable)类,一......
  • 常用API(一):BigDecimal
     解决小数运算失真的问题 packagecom.itheima.Math;importjava.math.BigDecimal;publicclassbigdecimal{publicstaticvoidmain(String[]args){System.out.println((0.1+0.2));//把小数转换成字符串BigDecimala1=newBigD......
  • BigDecimal相加一直为零的坑,解决BigDecimal相加为0的方法
    BigDecimal相加一直为零的坑,解决BigDecimal相加为0的方法使用BigDecimal时,相加一直为零,感觉有点坑。错误写法:BigDecimalafe=newBigDecimal("0");for(inti=0;i<10;i++){BigDecimaldecimal=newBigDecimal("1000");......
  • BigDecimal
    概述Immutable,arbitrary-precisionsigneddecimalnumbers.不可变的、任意精度的有符号的十进制数;A{@codeBigDecimal}consistsofanarbitraryprecisioninteger<i>unscaledvalue</i>anda32-bitinteger<i>scale</i>.  Ifzeroorpositive,thescal......
  • BigDecimal
    3.BigDecimal3.1介绍BigDecimal是Java在java.math包中提供的线程安全的API类。用于解决小数运算中,出现的不精确问题3.2创建对象BigDecimal所创建的是对象,故我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须......
  • BigDecimal值在java比较的两种方法
    1、使用equals()方法不但要求两个BigDecimal的值相等,还要求它们的scale()相等。BigDecimald1=newBigDecimal("123.45");BigDecimald2=newBigDecimal("123.45000");System.out.println(d1.equals(d2));//false,因为scale不同System.out.println(d1.equa......