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

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

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

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

(0)


相关推荐

  • android一键 iphone,安卓手机一键变“iPhone”,这种App太过分了

    android一键 iphone,安卓手机一键变“iPhone”,这种App太过分了原标题:安卓手机一键变“iPhone”,这种App太过分了最近有小伙伴问小雷,如何才能在安卓手机上使用iOS的桌面。让整个手机看起来更加清爽整洁。想让苹果手机变得“卓里卓气”可能有点麻烦,但是如果是安卓手机想变成iOS风格,那是分分钟就能搞定的事情。今天小雷就给大家推荐一款能够随意更换主题UI的实用软件——【XLauncherPro】。这是一款模仿iPhone手机界面的应用,有了它可以让手机界…

  • plsql dev 12 版下载地址「建议收藏」

    plsql dev 12 版下载地址「建议收藏」plsql各个版本下载地址https://www.allroundautomations.com/bodyplsqldevreg.html下载步骤:12版https://jingyan.baidu.com/article/7e4409537ffac92fc1e2ef6c.htmlPLSQLDeveloper12注册码(永久有效)PLSQLDe…

  • 安卓市场2016_鼓励大胆猜想

    安卓市场2016_鼓励大胆猜想时至今日,但凡中国的手机设计公司,要没有android手机项目,那都不好意思说自己是搞手机的。智能机替代功能机,是大势所趋,在新的一年里,结合去年一年所看所思,大胆做出一点今年的市场猜想,欢迎大家批评指教1.硬件性能瓶颈将不复存在       去年的低端android手机,基本上就是在“用户能接受多低的价格”与“用户能忍受多糟糕的体验”之间的危险博弈。那些个运营商所鼓吹的千元智能机,

  • 学校老师要求微信群里的家长下载钉钉建群,解散微信群,钉钉是不正当商业竞争吗?「建议收藏」

    学校老师要求微信群里的家长下载钉钉建群,解散微信群,钉钉是不正当商业竞争吗?「建议收藏」仅仅只是一个学校里面在推广使用钉钉软件建群,不再使用微信群。就可以涉及不正当的商业竞争,我想这也未免太夸大其词了。学校使用什么样的软件来帮助老师管理学生管理学校,同时软件又是免费的,何来不正当竞争之说?反过来说如果学校还在使用微信群,那么是不是微信又涉及到不正当的商业竞争呢?所以不论是钉钉还是微信,都只是方便家校沟通的一种软件,只要不牵扯到经济利益,就不存在任何的不正当竞争。微信群为什么越来越不适合作为家校沟通的渠道在当今的移动互联网时代,学校的班级管理同样需要借助于互联网的先进技术,但是就我们

  • linux通配符的用法_linux中rmdir命令

    linux通配符的用法_linux中rmdir命令注意:linux通配符和三剑客(grep,awk,sed)正则表达式是不一样的,因此,代表的意义也是有较大区别的。通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk场景。*:通配符,代表所有(0到多个)字符?:通配符,代表任意1个字符;:连续不同命令的分隔符#:配置文件注释|:管道~:当前用户的家目录-:上一次所在的路径$:变量前需要加的符号/:路径分隔符号,也是…

发表回复

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

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