BigDecimal的常见用法

详解BigDecimal及其加减乘除运算 目录 一、BigDecimal概述 二、构造函数详解 1、BigDecimal(int val) 2、BigDecimal(intval, MathContextmc) 3、BigDecimal(longval) 4、BigDecimal(longval, MathContextmc) 5、BigDecimal(BigIntegerval) 6、BigDecima... 阅读详情

1、BigDecimal类简介

BigDecimal是java.math包中的一个不可变的、任意精度的有符号十进制数。它提供了对数值的精确控制,非常适合财务和科学计算。BigDecimal类可以表示非常大的数或非常小的数,同时支持任意精度的小数点位置。

2、BigDecimal的构造方法

BigDecimal类提供了多种构造方法,允许我们从字符串、双精度浮点数(double)或长整型数(long)创建BigDecimal实例。其中,从字符串创建BigDecimal实例是最推荐的方式,因为它可以避免由于浮点数的舍入误差而导致的不精确性。

3、BigDecimal的数学运算

BigDecimal a = new BigDecimal("80");
BigDecimal b = new BigDecimal("50.50");

1、加法 a.add(b)

2、减法 a.subtract(b)

3、乘法 a.multiply(b)

4、除法 a.divide(b, scale, roundingMode)。这里,scale指定结果的小数点后位数,roundingMode指定舍入模式。

5、求余数 a.remainder(b)

4、示例代码与测试

import java.math.BigDecimal;
import java.math.RoundingMode;
 
public class BigDecimalExample {
 
    @Test
    public void test1(){//加法 add
        BigDecimal a = new BigDecimal("80");
        BigDecimal b = new BigDecimal("50");
        //结果:130
        System.out.println("a + b = " + a.add(b));
    }
 
    @Test
    public void test2(){//减法 subtract
        BigDecimal a = new BigDecimal("80");
        BigDecimal b = new BigDecimal("50");
        //结果:30
        System.out.println("a - b = " + a.subtract(b));
    }
 
    @Test
    public void test3(){//乘法 multiply
        BigDecimal a = new BigDecimal("80");
        BigDecimal b = new BigDecimal("50");
        //结果:4000
        System.out.println("a * b = " + a.multiply(b));
    }
 
    @Test
    public void test4(){//除法 divide
        BigDecimal a = new BigDecimal("99.99");
        BigDecimal b = new BigDecimal("5");
        //结果:20.00(保留两位小数,四舍五入)
        System.out.println("a / b = " + a.divide(b, 2, RoundingMode.HALF_UP));
    }
 
    @Test
    public void test5(){//余数运算 使用remainder方法进行求余数运算
        BigDecimal a = new BigDecimal("10");
        BigDecimal b = new BigDecimal("3");
        //结果:1
        System.out.println("a % b = " + a.remainder(b));
    }
}

5、总结

BigDecimal类是Java中处理高精度数值运算的强大工具。它允许我们执行精确的数学运算,避免了浮点数的舍入误差。在金融和科学计算等需要高精度的场合中,BigDecimal类是不可或缺的。通过合理使用BigDecimal的构造方法和数学运算方法,我们可以确保我们的计算结果是准确且可靠的。

希望这篇博客能帮助你更好地理解Java中的BigDecimal类及其精确数学运算。如果你有任何问题或需要进一步的解释,请随时留言。

家庭网络中,路由器和交换机的连接顺序 它的目的是给路由器增加端口,用户访问互联网的速度比情况一要快,常用于办公网络、家庭成员多的场景。光纤入户首先连接的肯定是光猫,而在光猫的后面,是先连接交换机?还是应该接路由器呢?家庭网络中路由器和交换机的先后连接顺序。它目的是让更多的用户访问互联网。常用于一些超大型机房、网吧等。至于路由器和交换机的区别。两者之间很多功能都有兼容。但用户上网速度相对较慢。在技术日益迭代的今天。 阅读详情

相关推荐

CTF实战:手把手教你用Python破解转轮机加密(附完整脚本)

本文详细介绍了如何使用Python逆向破解转轮机加密,特别针对CTF比赛中的Crypto类题目。通过解析转轮机加密原理、实战Python脚本编写及调试技巧,帮助参赛者快速掌握破解方法,提升在攻防世界等CTF比赛中的解题效率。

silver的专栏 1116

java中BigDecimal的介绍及使用,BigDecimal格式化,BigDecimal常见问题

BigDecimal概述 二、BigDecimal常用构造方法 三、BigDecimal常用方法 四、BigDecimal进阶 BigDecimal的八种舍入模式 BigDecimal格式化、小数点转换 货币格式化与百分比格式化 五、BigDecimal常见问题 踩坑一:创建 BigDecimal精度丢失的坑 踩坑二:等值比较的坑 踩坑三:无限精度的坑 踩坑四:BigDecimal三种字符串输出的坑 踩坑五:使用BigDecimal进行计算时参数不能为NULL 踩坑六:使用BigDecimal进行除法计算时

weixin_49114503的博客 5万+

小白学习微信小程序的图像识别和文字识别技术

其中,type参数指定了识别的类型,imageUrl参数指定了图片的地址,success回调函数用于处理识别成功的结果,fail回调函数用于处理识别失败的情况。其中,type参数指定了识别的类型,imageUrl参数指定了图片的地址,success回调函数用于处理识别成功的结果,fail回调函数用于处理识别失败的情况。下面,我们来实现一个文字识别的应用案例,可以识别一张图片中的文字,并将识别结果显示到小程序的页面上。在小程序中,也可以使用微信提供的文字识别接口,实现文字识别的功能开发。

qq_67153941的博客 1643

java 中 BigDecimal 详解

首先,学习一个东西,我们都必须要带着问题去学,这边我分为 【为什么?】【是什么?】【怎么用?】 【为什么要用BigDecimal?】 首先,我们先看一下,下面这个现象 那为什么会出现这种情况呢? 因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。 注:根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确...

代码君的博客 20万+

金蝶云星空-协同开发云-安装开发环境

金蝶协同开发云就是不需要每一个开发都在自己的本机安装开发环境,自己安装可容易出错,包括源代码管理也一并解决了,大大减少了开发人员的工作量和降低了上手的难度。

qq_33881408的博客 5598

NSFC结题报告下载脚本失效?3步教你手动修复下载按钮问题(2024最新版)

针对NSFC官网域名变更导致结题报告下载脚本失效的问题,本文提供了详细的手动修复指南。通过三步操作,教你如何修改用户脚本的域名匹配规则,恢复下载按钮功能,确保NSFC结题报告下载器能继续高效工作。

vscode6remote的博客 753

BigDecimal(详解)

BigDecimal(详解)

qq_53876295的博客 3996

【2026年华为暑期实习(AI)-4月29日-第一题- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要涵盖了机器学习和深度学习中的多个核心概念与技术,包括非负矩阵分解、条件数、MobileNet创新点、LDA降维、大模型评测指标、半精度训练、多任务学习、GPU存储层次、正则化、张量并行等。通过12道单选题和8道多选题的形式,系统性地考察了相关理论原理、应用场景及工程实践要点。题目设计注重概念准确性(如LDA目标函数)、技术细节(如Megatron-LM的并行策略)与实际应用(如FP16训练动机),并包含概率统计(二项分布)和数值计算(微分误差分析)等数学基础内容,全面检验读者对AI领域关键知识的掌握

m0_73659489的博客 143

BigDecimal加减乘除计算

BigDecimal的运算——加减乘除 首先是bigdecimal的初始化 这里对比了两种形式,第一种直接value写数字的值,第二种用string来表示 我们对其进行加减乘除绝对值的运算,其实就是Bigdecimal的类的一些调用 BigDecimal num1 = new BigDecimal(0.005); BigDecimal num2 = new BigDecimal(1000000); BigDecimal num3 = new BigDecimal(-1000000); //尽

weixin_49562132的博客 7万+

Ubuntu Rtx3090 Cuda11.7 安装 pytorch3d

pytorch ubuntu pytorch3d 安装

G果的博客 2273

【26美赛B题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

2026美赛数学建模B题解析与备赛指南:本文针对B题"数据+预测+决策优化"的特点,提出通用建模路线图,包含数据预处理、特征工程、预测模型构建、策略优化和稳定性验证等关键环节。提供赛题拆解方法、Python/Matlab双实现方案、AI辅助建模技巧及论文写作模板。适用于2026美赛B题参赛者及其他数学建模竞赛选手,帮助掌握从数据到决策的闭环建模流程,特别强调逻辑严谨性和结果可视化呈现。订阅者可获取历年真题解析和持续更新的备赛资源。

一键难忘的博客 2111

java bigdecimal赋值_Java中BigDecimal类的简单用法

本文实例讲述了Java中BigDecimal类的简单用法,是Java程序设计中非常实用的技巧,分享给大家供大家参考。具体用法分析如下:一般来说,一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算。但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计算的缺憾。BigDecimal类位于...

weixin_39989949的博客 5469

【报错】(pycharm运行程序)OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading

1 报错 OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading 2 分析原因 通过 activate Distance 进行自己创建的 Distance 虚拟环境中,输入python会显示环境中python的版本信息,再依次import,显然不会报错。 这是因为在Anaconda的环境下有支持 import torch 的 dll,而在PyCharm中使用的是自己创建的新环境,还缺少相应支持的dll,仅需在PyCharm中配置环境变量。.

静谧、淡雅 8623

BigDecimal用法小结

    最近用到了BigDecimal,百度了一下,边学边用,然后就想着总结一下,方便以后的回顾。 一、为什么使用BigDecimal     float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果...

WuSheng的博客 8228

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

bigdecimal正确用法_BigDecimal用法

一、BigDecimal简介float和double类型的主要设计目的是为了科学计算和工程计算。它们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合,而BigDecimal则适用于商业高精度计算 。使用 float或者double精确地表示0.1(或者10的任何负数次方值)是不可能的,因为在二进...

weixin_30260191的博客 465

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

BigDecimal用法总结

BigDecimal常用于金额的计算,下面总结下这次项目中BigDecimal的用法。 1.加减乘除 2.设置精度 3.取反 加减乘除分别调用函数 public BigDecimal add(BigDecimal value); public BigDecimal subtract(BigDecimal value); public Big

刘晓春 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

BigDecimal常见用法

divideAndRemainder(BigDecimal divisor)该方法接收另一个BigDecimal 对象作为参数,该参数即为除数,返回一个BigDecimal数组,返回数组中包含两个元素,第一个元素为两数相除的商,第二个元素为余数。其中,第二个参数2表示保留两位小数,第三个参数RoundingMode.HALF_UP表示采用四舍五入的方式进行舍入。flag = -1,表示bigdemical1小于bigdemical2;flag = 0,表示bigdemical1等于bigdemical2;

Colin的博客 302

Java中BigDecimal的用法

BigDecimal的用法

shenxiaomo1688的博客 1371

BigDecimal用法

关于bigdimical比较大小 1.java中对bigdimical比较大小一般用的是bigdemical的compareTo方法; int a = bigdemical.compareTo(bigdemical2); a = 1,表示bigdemical大于bigdemical2; a = 0,表示bigdemical等于bigdemical2; a = -1,表示bigdemical小于bi...

shenzy 3010

bigdecimal正确用法_Bigdecimal常见各种用法

Bigdecimal与int/double/string类型的相互转换:int转为Bigdecimalint a=3Bigdecimal b=new Bigdecimal(a)Bigdecimal转为intBigdecimal b=new Bigdecimal(5)int a=b.intValue();string转为BigdecimalString c="5.123400";Bigdecimal...

weixin_39679370的博客 214

java中bigdecimal的用法_Java中BigDecimal类的简单用法

本文实例讲述了Java中BigDecimal类的简单用法,是Java程序设计中非常实用的技巧,分享给大家供大家参考。具体用法分析如下:一般来说,一提到Java里面的商业计算,我们都知道不能用float和double,因为他们无法进行精确计算。但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计算的缺憾。BigDecimal类位于...

weixin_42437253的博客 323

BigDecimal的一些用法

一、setScale方法 //不会出错 System.out.println(new BigDecimal("1225.120").setScale(2)); //出错原因精度丢失问题,要指定舍入模式即可 System.out.println(new BigDecimal("1225.121").setScale(2)); //setScale()需要指定舍入规则,不知道会因为精度丢失问题报错。 public BigDecimal setScale(int newScale) { ret

wounler的博客 1158

BigDecimal用法详解

BigDecimal用法详解 一、BigDecimal介绍 用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中若需要精确的计算结果则要用java.math.BigDecimal类。 二、BigDecimal用法 BigDecimal所创...

qq_42160596的博客 2624

BigDecimal的用法

BigDecimal用法详解 一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对...

qq_30676289的博客 155

bigdecimal divide用法_好程序员Java培训分享BigDecimal的用法

  好程序员Java培训分享BigDecimal的用法,如果对数值结果精度要求很高,那么就可以使用BigDecimal,BigDecimal可以精准的控制小数点后面的数字Java培训  1. 实例 BigDecimal 对象  通常会使用 String 和 int 构造方法实例出 BigDecimal 对象,即  new BigDecimal(String val);  new BigDecima...

weixin_39836536的博客 1603
上一篇: Vue环境安装、项目构建运行、打包部署详解
下一篇: CentOS 7上安装RabbitMQ并实现远程访问
ㅤㅤ 诚ㅤㅤ
博客等级 码龄8年 207粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值