首页 > 其他分享 >BigDecimal multiply乘法运算

BigDecimal multiply乘法运算

时间:2022-12-06 11:11:06浏览次数:48  
标签:BigDecimal longValue System multiply new 乘法 out

BigDecimal multiply乘法运算

package com.example.core.mydemo;

import java.math.BigDecimal;

public class MulTest {
    public static void main(String[] args) {
        BigDecimal distancedbg = new BigDecimal(0.0055);

        //输出:5
        System.out.println(distancedbg.multiply(new BigDecimal(1000)).longValue());

        //输出:6
        System.out.println(new BigDecimal(distancedbg.multiply(new BigDecimal(1000)).longValue()).multiply(new BigDecimal(1.4)).longValue());
        //为什么输出是6,拆分结果:
        //5
        System.out.println(new BigDecimal(distancedbg.multiply(new BigDecimal(1000)).longValue()));
        //6.999999999999999555910790149937383830547332763671875
        System.out.println(new BigDecimal(distancedbg.multiply(new BigDecimal(1000)).longValue()).multiply(new BigDecimal(1.4)));
        //6
        System.out.println(new BigDecimal(distancedbg.multiply(new BigDecimal(1000)).longValue()).multiply(new BigDecimal(1.4)).longValue());

        //输出:7.699999999999999553135232588374492479488253593444824218750000
        System.out.println(distancedbg.multiply(new BigDecimal(1000)).multiply(new BigDecimal(1.4)));

        BigDecimal big = distancedbg.multiply(new BigDecimal(1000)).multiply(new BigDecimal(1.4));
        long result = big.setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
        //输出:8  (四舍五入,不保留小数点)
        System.out.println(result);

        double result2 = big.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
        ////输出:7.7 (四舍五入,保留1位小数点)
        System.out.println(result2);

        long result3 = big.longValue();
        ////输出:7 (直接强转取整)
        System.out.println(result3);

    }
}

 

标签:BigDecimal,longValue,System,multiply,new,乘法,out
From: https://www.cnblogs.com/oktokeep/p/16954667.html

相关文章

  • for循环输出9x9乘法表
    #变量i遍历从1到9的序列foriinrange(1,10):#变量j遍历从1到i+1的序列,以保证j的最大值不超过iforjinrange(1,i+1):#输出jxi=j*i,制表符pr......
  • BigDecimal
    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数......
  • Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余
    本文主要讲解BigDecimal的比较运算,保留精度和取整和基础运算,BigDecimal与其他数据类型转换。比较运算比较num1是否大于num2publicstaticbooleangt(@NotNullBigD......
  • 乘法逆元学习笔记
    定义当\(a,b\)满足\(ab\equiv1\pmodp\),\(a,b\)互为\(\pmodp\)的乘法逆元,也记作\(a^{-1}\)和\(b^{-1}\)。前置知识1.费马小定理若\(p\)为质数且\(\gc......
  • @DecimalMax注解 : does not represent a valid BigDecimal format
    一个小疏忽,导致踩了半天的坑。。。。。这是在由于实体类里面使用了​​@DecimalMax​​​注解,然后在使用​​ValidatorUtils.validateEntity();​​进行参数验证的时候报的......
  • BigDecimal类型的值比较大小
    使用compareTo方法:eg1:intresult=bigdemical1.compareTo(bigdemical2)result=-1,表示bigdemical1小于bigdemical2;result=0,表示bigdemical1等于bigdemical2;result=......
  • 43. Multiply Strings(重要)
    Giventwonumbersrepresentedasstrings,returnmultiplicationofthenumbersasastring.Note:Thenumberscanbearbitrarilylargeandarenon-negative.Conv......
  • 九九乘法口诀表以及扩展
    九九乘法口诀表以及扩展按照顺序输出九九乘法口诀表packagecom.fisherstudy.struct;​publicclassDemo02{  publicstaticvoidmain(String[]args){   ......
  • BigDecimal
    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的......
  • jaava之BigDecimal
    BigDecimal常见异常除法的时候出现异常java.lang.ArithmeticException:Non-terminatingdecimalexpansion;noexactrepresentabledecimalresult原因分析:......