iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java进行数字计算 BigDecimal计算(加减乘除)
  • 498
分享到

Java进行数字计算 BigDecimal计算(加减乘除)

javaPoweredby金山文档 2023-08-31 07:08:45 498人浏览 薄情痞子
摘要

一.前言 Double只能处理16位有效数精度,在某些情况下精度对其需求是不够的,所以就有了BigDecimal。因为BigDecimal的精度范围的范围大,所以在问我们的开发业务中对精度要求高的属性,就需要BigDecimal来进行

一.前言

Double只能处理16位有效数精度,在某些情况下精度对其需求是不够的,所以就有了BigDecimal。因为BigDecimal的精度范围的范围大,所以在问我们的开发业务中对精度要求高的属性,就需要BigDecimal来进行存储计算,防止精度丢失。这里我主要介绍一下BigDecimal的加,减,乘,除。四种基础计算。

二.内容

首先准备两个BigDecimal类型的数

// new第一个参数

BigDecimal num1 = new BigDecimal(20.5555555555);

// new第二个参数

BigDecimal num2 = new BigDecimal(10.5555555554);

精度类 MathContext:

MathContext可以自己定义保留的有效数字位数:

MathContext mathContext = new MathContext(2);

其中2是指有效数字位数。MathContext类还有几个默认参数分别是:

MathContext.UNLIMITED = 不限制精度 采用四舍五入

MathContext.DECIMAL32 = 7位有效数字 采用“最接近的”数字舍入

MathContext.DECIMAL64 = 16位有效数字 采用“最接近的”数字舍入

MathContext.DECIMAL128 = 34位有效数字 采用“最接近的”数字舍入

1.加法

加法可以使用MathContext来确定有效数字位数:

// BigDecimal的加法 有两种 一种无精度入参 一种有精度入参

// 无精度入参 num1减去num2

BigDecimal addNum1 = num1.add(num2);

// 有精度入参

// MathContext.UNLIMITED = 不限制精度

// MathContext.DECIMAL32 = 7位有效数字

// MathContext.DECIMAL64 = 16位有效数字

// MathContext.DECIMAL128 = 34位有效数字

MathContext mathContext = new MathContext(2);

BigDecimal addNum2 = num1.add(num2, MathContext.DECIMAL32);

2.减法

减法可以使用MathContext来确定有效数字位数:

// BigDecimal的减法 有两种 一种无精度入参 一种有精度入参

// 无精度入参

BigDecimal subNum1 = num1.subtract(num2);

// 有精度入参

BigDecimal subNum2 = num1.subtract(num2,MathContext.DECIMAL32);

3.乘法

乘法可以使用MathContext来确定有效数字位数

// BigDecimal的乘法 有两种 一种无精度入参 一种有精度入参

// 无精度入参

BigDecimal mulNum1 = num1.multiply(num2);

// 有精度入参

BigDecimal mulNum2 = num1.multiply(num2,MathContext.DECIMAL32);

4.除法

其中除法有很多不同入参的方法,以下举例4种:

// BigDecimal的除法

// 无精度入参

BigDecimal divNum1 = num1.divide(num2);

// 有精度入参 MathContext

BigDecimal divNum2 = num1.divide(num2,MathContext.DECIMAL32);

// 有精度入参 RoundingMode RoundingMode.HALF_UP -> 四舍五入精度

BigDecimal divNum3 = num1.divide(num2, RoundingMode.HALF_UP);

// 有精度入参 RoundingMode RoundingMode.HALF_UP -> 四舍五入精度 scale 表示四舍五入到几位小数

BigDecimal divNum4 = num1.divide(num2,2, RoundingMode.HALF_UP)

具体代码如下:

package useful;

import java.math.BigDecimal;

public class StudyBigDecimal {

public static void main(String[] args) {

String s1 = "1.30";

String s2 = "-0.40";

StudyBigDecimal studyBigDecimal = new StudyBigDecimal();

String r = studyBigDecimal.add(s1, s2);

System.out.println(r);

}

public String add(String s1,String s2) {

BigDecimal b1 = new BigDecimal(String.valueOf(s1));

BigDecimal b2 = new BigDecimal(String.valueOf(s2));

BigDecimal b3 = b1.add(b2);

return b3.toString();

}

public void other(String s1,String s2) {

BigDecimal b1 = new BigDecimal(String.valueOf(s1));

BigDecimal b2 = new BigDecimal(String.valueOf(s2));

BigDecimal b3 = b1.subtract(b2); //减法运算

BigDecimal b4 = b1.multiply(b2); //乘法运算

BigDecimal b5 = b1.divide(b2); //除法运算

}

}

Java BigDecimal转化为字符串(科学计数法)的三种方法

介绍BigDecimal的3个toString方法的区别。

toEngineeringString:有必要时使用工程计数法。工程记数法是一种工程计算中经常使用的记录数字的方法,与科学计数法类似,但要求10的幂必须是3的倍数

toPlainString:不使用任何指数(永不使用科学计数法)

toString:有必要时使用科学计数法

import java.math.BigDecimal;

public class Test {

public static void main(String[] args) {

BigDecimal number = new BigDecimal("1E11");

System.out.println(number.toEngineeringString());

System.out.println(number.toPlainString());

System.out.println(number.toString());

}

}

输出:

100E+9

100000000000

1E+11

来源地址:https://blog.csdn.net/qq_30273575/article/details/128567262

--结束END--

本文标题: Java进行数字计算 BigDecimal计算(加减乘除)

本文链接: https://www.lsjlt.com/news/384638.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java进行数字计算 BigDecimal计算(加减乘除)
    一.前言 Double只能处理16位有效数精度,在某些情况下精度对其需求是不够的,所以就有了BigDecimal。因为BigDecimal的精度范围的范围大,所以在问我们的开发业务中对精度要求高的属性,就需要BigDecimal来进行...
    99+
    2023-08-31
    java Powered by 金山文档
  • BigDecimal的加减乘除计算方法介绍
    这篇文章主要介绍“BigDecimal的加减乘除计算方法介绍”,在日常操作中,相信很多人在BigDecimal的加减乘除计算方法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”BigDecimal的加减乘除...
    99+
    2023-06-20
  • BigDecimal的加减乘除计算方法详解
    目录BigDecimal的运算——加减乘除 首先是bigdecimal的初始化加法 add()函数     减法subtract()...
    99+
    2022-11-12
  • C++实现加减乘除计算器
    本文实例为大家分享了C++实现加减乘除计算器的具体代码,供大家参考,具体内容如下 #include <iostream> #include <conio.h>...
    99+
    2022-11-13
  • java实现简单的加减乘除计算器
    本文实例为大家分享了java实现加减乘除计算器的具体代码,供大家参考,具体内容如下 代码 import java.awt.*; import java.awt.event.*;...
    99+
    2022-11-12
  • android计算器实现两位数的加减乘除
    本文实例为大家分享了android计算器实现加减乘除的具体代码,供大家参考,具体内容如下 注:以下计算器只注重实现功能,不考虑其他BUG,只有两位整数的算法运算,适合新手 1、...
    99+
    2022-06-06
    Android
  • php怎么进行加减乘除运算
    PHP是一种非常流行的服务器端脚本语言,它被广泛用于Web开发。在PHP中,运算加减乘除是非常常见的操作,本文将会介绍PHP中这几种运算的使用方法。加法运算加法运算是最常见的一种运算,在PHP中使用加号(+)来表示。下面是一个简单的加法运算...
    99+
    2023-05-14
    php
  • php如何进行加减乘除运算
    今天小编给大家分享一下php如何进行加减乘除运算的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。加法运算加法运算是最常见的一种...
    99+
    2023-07-05
  • php中加减乘除计算公式如何写
    这篇“php中加减乘除计算公式如何写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中加减乘除计算公式如何写”文章吧。p...
    99+
    2023-07-06
  • php中加减乘除的计算公式怎么写
    这篇“php中加减乘除的计算公式怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中加减乘除的计算公式怎么写”文章吧...
    99+
    2023-06-29
  • php中加减乘除的计算公式是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中加减乘除的计算公式是什么PHP 算术运算符跟数学中的运算符类似,都具有加减乘除。最基本的算术运算符加 +减 -乘 *除 /取余 %例子如下:<php ...
    99+
    2014-06-25
    php
  • 批处理bat函数:大数字加减乘除、时期时间计算、数字排序、进制转换等
    目录计算任意位数的正整数加法计算1000位以内的正整数减法计算任意位数的正整数乘法500位内整数除法函数计算时间差可以处理0开头的数、重复数及200位以内的超大整数(封装)计算指定天...
    99+
    2022-11-12
  • 用python写一个支持加减乘除的简单计算器
    # 计算器程序def add(x, y): return x + ydef subtract(x, y): return x - ydef multiply(x, y): return x * ydef divide(x,...
    99+
    2023-10-22
    其他 Powered by 金山文档
  • 一篇文章带你入门java算术运算符(加减乘除余,字符连接)
    目录概念实例注意点1.除法不能整除时2.类型的提升3.字符的(+)操作4.字符串的(+)操作实例1实例2实例3实例4总结概念 算术运算符用在数学表达式中,它们的作用和在数学中的作用一...
    99+
    2022-11-12
  • Java常用数字工具类 大数乘法、加法、减法运算(2)
    上篇分享了一下数字转汉字的小功能,这里再分享一下大数相乘、相加、相减的功能。其他的不做过多的铺垫了,我先讲一下各个功能的计算原理。Ⅰ. 乘法运算为什么先说乘法运算——因为我先做了乘法运算。其实思路也是很多的,但是最终我参考了网络上的一种计算...
    99+
    2023-05-31
    java 数字运算 工具类
  • python如何计算一行中任意数字的阶乘
    小编给大家分享一下python如何计算一行中任意数字的阶乘,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!计算一行中任意数字的阶乘。Python 2.x.resul...
    99+
    2023-06-27
  • 如何在Java中使用NumPy进行数学计算?
    NumPy是一个强大的Python库,主要用于科学计算和数学计算。它提供了一个高效的多维数组对象和一系列工具,可以轻松处理大型数据集和复杂的数学计算。虽然Java没有内置的NumPy库,但我们可以使用Java NumPy库来实现类似的功能...
    99+
    2023-10-18
    path ide numy
  • 如何使用Java中的numpy库进行数值计算和处理?
    Java是一种广泛使用的编程语言,而Python则是一种非常流行的数据科学语言。Python中的numpy库是一个强大的数值计算和处理库,而Java也有一个名为ND4J的库,它可以实现类似的功能。在本文中,我们将介绍如何使用Java中的ND...
    99+
    2023-06-29
    二维码 api numpy
  • 如何在Java中使用Numpy进行科学计算和数据分析?
    Java是一种流行的编程语言,用于开发各种类型的应用程序,包括科学计算和数据分析。Numpy是一个Python库,用于处理大规模的多维数组和矩阵运算。在本文中,我们将介绍如何在Java中使用Numpy进行科学计算和数据分析。 一、安装Jav...
    99+
    2023-06-14
    http numpy 索引
  • 如何在Python中使用关键字和数据类型来进行数值计算?
    Python是一种高级编程语言,它非常适合进行数值计算。这是因为Python提供了许多内置的关键字和数据类型,可以方便地进行各种数学计算。在本文中,我们将介绍如何在Python中使用关键字和数据类型来进行数值计算,并且会穿插一些演示代码。 ...
    99+
    2023-09-15
    关键字 数据类型 numy
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作