BigDecimal类的简单使用方法

BigDecimal类的简单使用方法

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

一提到Java里面的商业计算,我们都知道不能用float和double,由于他们无法进行精确计算。可是Java的设计者给编程人员提供了一个非常实用的类BigDecimal,他能够完好float和double类无法进行精确计算的缺憾。BigDecimal类位于java.maths类包下。首先我们来看下怎样构造一个BigDecimal对象。它的构造函数非常多,我挑最经常使用的两个来演示一下:一个就是BigDecimal(double val),还有一个就是BigDecimal(String str)。这两个看上去没什么太大差别,可是正像API描写叙述中说的那样:

也就是说利用double作为參数的构造函数,无法精确构造一个BigDecimal对象,须要自己指定一个上下文的环境,也就是指定精确位。而利用String对象作为參数传入的构造函数能精确的构造出一个BigDecimal对象。请看以下的代码:

输出:

所以我们在选择构造函数时,要看详细需求而定。

另外,非常多人会问到怎么将基本类型,如int,float,double,long,和BigDecimal对象相互转换。非常easy:

基本类型通过构造函数转换成相应的BigDecimal对象,而BigDecimal类提供了诸如intValue(), floatValue(), doubleValue(), longValue()方法来将BigDecimal对象转换成相应的值。

关于BigDecimal是怎样计算的,我以论坛中一个人的提问帖子为例,来简单的写出BigDecimal的运算方法。题目是:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?

这道题应该是从后往前推,而且要逆运算,最后得出原有酒的体积。

结果:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118064.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JVM参数汇总:JVM内存设置多大合适?Xmx和Xmn如何设置?[通俗易懂]

    JVM参数汇总链接:[#link](https://www.cnblogs.com/duanxz/p/3482366.html)一、java启动参数共分为三类:其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容…

  • 教你实现一个天气实时查询微信小程序

    教你实现一个天气实时查询微信小程序文章目录博主绪言组件选择部署阶段组件选择组件变量安排组件布局js后端逻辑处理环节API处理环节函数处理环节结束语博主绪言天气之子app主要功能是选择地区(省,市,区或者县),然后获取当前信息,把所选择的地区信息显示在界面上,然后调用和风天气免费的API,获取当前选择地区的天气信息,并且获取天气图标,把所有获取的这些信息,美观地显示在界面上。以下是示例界面:组件选择部署阶段组件选择根据上…

  • 布尔值数据类型

    布尔值数据类型一、布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可

  • linux vi命令 退出不保存,linux vi保存退出命令(如何退出vi)

    linux vi命令 退出不保存,linux vi保存退出命令(如何退出vi)若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令:q!Vi放弃所作修改而直接退到shell下,则Vi在显示窗口的状态行给出提示信息:Fileexists(use!tooverride)此时,在末行模式下,。在末行模式下,若在用此命令退出Vi时,返回到shell;若当前编辑的文件没被修改过,输入命令:wqVi将先保存文件,输入命令:wVi保存当前编辑…

  • C语言排序(冒泡排序、选择排序、插入排序和快速排序)

    C语言排序(冒泡排序、选择排序、插入排序和快速排序)C语言排序(冒泡排序、选择排序、插入排序和快速排序)C语言排序什么是排序?1.冒泡排序基本思想主要思路:动态示例demo2.选择排序基本思想主要思路动态示例demo3.插入排序基本思想主要思路动态示例demo4.快速排序基本思想主要思路动态示例demoC语言排序什么是排序?就是将无序的变成有序的1.冒泡排序基本思想在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,

  • Java安全之Commons Collections7分析

    Java安全之Commons Collections7分析

    2020年11月20日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号