double转BigDecimal精度丢失的解决方案。

double转BigDecimal精度丢失的解决方案。因为double有精度丢失的问题,所以关于小数点的计算通常使用BigDecimal来计算。但直接调用BigDecimal的构造函数,会出现精度丢失问题。publicBigDecimal(doubleval){this(val,MathContext.UNLIMITED);}例子:publicclassDemo1{publicstaticvoidmain(String[]args){//输出结果:4.7999999999999998223

大家好,又见面了,我是你们的朋友全栈君。

因为double有精度丢失的问题,所以关于小数点的计算通常使用BigDecimal来计算。
但直接调用BigDecimaldouble构造函数,会出现精度丢失问题。

/** * BigDecimal传double的构造函数 */
public BigDecimal(double val) { 
   
        this(val,MathContext.UNLIMITED);
}

例子:

public class Demo1 { 
   
    public static void main(String[] args) { 
   
    //输出结果:4.79999999999999982236431605997495353221893310546875
        System.out.println(new BigDecimal(4.8));
    }
}

解决方案:
double类型转为String类型就可以了。
调用的是BigDecimalString构造函数。

public class Demo1 { 
   
    public static void main(String[] args) { 
   
        double d = 4.8;
        //输出结果:4.79999999999999982236431605997495353221893310546875
        System.out.println(new BigDecimal(d));
        //输出结果:4.8
        System.out.println(new BigDecimal(String.valueOf(d)));
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年6月3日 下午10:00
下一篇 2022年6月3日 下午10:00


相关推荐

  • nginx原理总结

    nginx原理总结1 Nginx 是如何处理一个请求的呢 首先 nginx 在启动时 会解析配置文件 得到需要监听的端口与 ip 地址 然后在 nginx 的 master 进程里面先初始化好这个监控的 socket 再进行 listen 然后再 fork 出多个子进程出来 子进程会竞争 accept 新的连接 此时 客户端就可以向 nginx 发起连接了 当客户端与 nginx 进行三次握手 与 nginx 建立好一个连接后此时 某一个子

    2026年3月17日
    2
  • 安装yarn失败

    安装yarn失败若出现说明未找到 Git 先下载 Git 安装官网 Git DownloadingP git scm com 然后到 Git cmd 目录下搜 cmd 然后输入 yarncreateum 具体操作看下文开始使用 AntDesignPro 会出现以下页面

    2026年3月16日
    2
  • 常见应用层协议

    常见应用层协议常见应用层协议 1 超文本传输协议用于传输浏览器使用的普通文本 超文本 音频和视频等数据 详细情况请看 2 邮件协议在互联网中 电子邮件的传送是依靠这些协议完成的 详细情况请看 3 文件传输协议用来在客户机与服务器之间进行简单文件传输的协议 详细情况请看 4 域名解析协议万维网上作为域名和 IP 地址相互映射的一个分布式数据库 能够使用户更方便的访问互联网 详细情况请看 5

    2026年3月17日
    1
  • Netty框架学习及第一个Netty应用「建议收藏」

    1.什么是Netty?  Netty是一个利用Java的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的API的客户端/服务器框架。Netty提供高性能和可扩展性,让你可以自由地专注于你真正感兴趣的东西。2.发展历史:  网络发展初期,花费很多时间学习socket的复杂、寻址等,在Csocket库上进行编码,并需要在不同的操作系统上做不同的处理。  Java早期…

    2022年4月7日
    76
  • 配置catalina.out的日志格式[通俗易懂]

    配置catalina.out的日志格式[通俗易懂]启动Tomcat时,catalina.out中输出的日志格式可能不太理想。看看某些版本默认的格式:四月24,20186:49:32下午org.apache.catalina.startup.Catalinastart信息:Serverstartupin9772ms有点别扭,想要调整成下面的格式:24-Apr-201818:52:16.13…

    2022年5月9日
    54
  • Hadoop生态圈-Knox网关的应用案例

    Hadoop生态圈-Knox网关的应用案例Hadoop 生态圈 Knox 网关的应用案例 作者 尹正杰版权声明 原创作品 谢绝转载 否则将追究法律责任 nbsp nbsp 一 Knox 网关简介 p p1 margin 0 0px0 0px0 0px0 0px font 12 0px HelveticaNeu color

    2026年3月16日
    1

发表回复

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

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