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的运算方法。题目是:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?

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

结果:

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

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

(0)
上一篇 2021年12月14日 上午9:00
下一篇 2021年12月14日 上午9:00


相关推荐

  • 查看端口 并关闭端口

    查看端口 并关闭端口假如在Windows平台下,我们的端口号被谁占用了,以8080端口为例:       在,命令行输入:netstat-nao出现: 协议 本地地址     外部地址    状态     PID TCP  0.0.0.0:135      0.0.0.0:0       LISTENING  

    2022年7月20日
    20
  • 步进电机S曲线的生成

    步进电机S曲线的生成步进电机的速度从 0 变为一个比较大的速度 需要一个加速过程 否则会产生振动或是电机的堵转 电机加速通常有 T 型曲线和 S 型曲线两种方式 S 型曲线相对于 T 型曲线 S 型曲线的速度不会突变 S 型曲线的原始公式如下 y K 1 Exp a b x K0 b0 Exp 是指数函数 由这个公式可以看出 y 会随着 x 的增大 逼近 K 把这个公式应用到电机控制之中 K 看成最大的速度 Vmax x 看成时间 t 的变

    2026年3月19日
    2
  • Java面试宝典4.0版

    Java面试宝典4.0版JAVA面试宝典V4.0版本基础1.简述JDK跟JRE的区别Jdk是java开发人员在开发过程使用的软件开发包,他提供了java的开发环境和运行环境JRE是JavaRuntimeEnviroment是指Java的运行环境如果你只想跑java程序,只要安装jre就够了,如果要从事开发就得安装jdk2.简述path跟classpat…

    2026年1月30日
    5
  • DeepSeek本地部署(局域网+异地访问)数据库(保姆教程),建议收藏起来慢慢学!!

    DeepSeek本地部署(局域网+异地访问)数据库(保姆教程),建议收藏起来慢慢学!!

    2026年3月16日
    2
  • 动态路由协议简单理解

    动态路由协议简单理解一 什么是路由 nbsp nbsp nbsp nbsp nbsp nbsp 在一个网络中 路由是一个非常基本的概念 当路由器 或者其他三层设备 收到一个 IP 数据包 路由器会找出报文中的 IP 头里的目的 IP 地址 然后拿着目的 IP 地址到自己的路由表中进行查找 找到 最匹配 的路由条目后 将数据包根据路由条目所指示的出接口或下一跳 IP 转发出去 随着网络路由的发展 路由的种类有很多 如静态路由 动态路由 缺省路由等 二 路由协议的分类 nbsp nbsp nbsp nbsp nbsp amp nb

    2026年3月19日
    2
  • janus流媒体服务器搭建

    janus流媒体服务器搭建准备 ubuntu20 虚拟机注意 切换 root 用户 sudosu 否则以下很多命令要加 sudo linux 新版本推荐 apt 低版本 apt get 还能用 一安装工具 aptinstallgi tools 二安装 janus 依赖库 aptinstallli devapt

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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