java 的double转BigDecimal的坑

java 的double转BigDecimal的坑大家都知道java的double由于精度问题会给你挖无数个坑,一般采取的方式都会避免使用,但是android的dbflow对model里面的BigDecimal转换为sqlitetable时,fieldtype居然是text.所以,model里面field的属性只能保持double那么,先测试一下:doubled=3.1415;…

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

    大家都知道java的double由于精度问题会给你挖无数个坑, 一般采取的方式都会避免使用, 但是android的dbflow对model里面的BigDecimal转换为sqlite table时, field type居然是text. 所以, model里面field的属性只能保持double

    那么,先测试一下:

        double d = 3.1415;
        System.out.println(new BigDecimal(d));
        System.out.println(BigDecimal.valueOf(d));
        System.out.println(BigDecimal.valueOf(new Double(d)));
        System.out.println(new BigDecimal(new Double(d)));
        System.out.println(new BigDecimal(new Double(d).toString()));
        System.out.println(new BigDecimal("3.1415"));

输出如下

java 的double转BigDecimal的坑

double的普通运算则需要全部改为BigDecimal提供的加减乘除方法

// lvDet.issuedQty = item.requireQty - item.followQty;//item.issuedQty;
lvDet.issuedQty = BigDecimal.valueOf(item.requireQty).subtract(BigDecimal.valueOf(item
                        .followQty)).doubleValue();

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue(24)网络请求模块axios使用「建议收藏」

    vue(24)网络请求模块axios使用「建议收藏」什么是axiosAxios是一个基于promise的HTTP库,可以用在浏览器和node.js中。主要的作用:axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。a

    2022年8月7日
    12
  • 【Unity3D】自学之路2.0

    【Unity3D】自学之路2.0一、前言原文主要讲的是如何从零基础入门,然后一步一步进阶的文章,包括很多学习资料,学习的网址,研究方向等,内容还是比较全面的。大家多多支持一些克森大神,关注一下他的公众号。这篇文章就将原文的内容进行总结合并,然后转载过来跟大家一起学习。二、原文原文地址:https://mp.weixin.qq.com/s/nAaGAzT7NIPH4v6YOzBCRg原文作者:克森原文出处:微…

    2022年6月1日
    32
  • Django(31)模板中常用的过滤器

    Django(31)模板中常用的过滤器模版常用过滤器在模版中,有时候需要对一些数据进行处理以后才能使用。一般在Python中我们是通过函数的形式来完成的。而在模版中,则是通过过滤器来实现的。过滤器使用的是|来使用。add将传进来的参

    2022年8月7日
    5
  • JVM垃圾回收算法与参数配置

    JVM垃圾回收算法与参数配置引用计数法这是个古老而经典的垃圾收集算法 其核心就是在对象被其他所引用时计数器 1 而当引用失效时 1 但是这种方式有非常严重的问题 无法处理循环引用的情况 还有就是每次进行加减操作比较浪费系统性能 标记清除法分为标记和清除两个阶段进行处理内存中的对象 当然这种方式也有非常大的弊端 就是空间碎片问题 垃圾回收后的空间不连续 不连续的内存空间工作效率低于连续的内存空间 复制算法 java

    2025年9月28日
    2
  • 彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景[通俗易懂]

    彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景[通俗易懂]启动模式启动模式是什么有这样的场景:当我们使用App的时候,呈现出一个Activity,按下返回键(不考虑重写返回键事件),常常就回退到上一个打开的Activity或者退出App。//重写返回按键事件publicbooleanonKeyDown(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_BA

    2022年6月26日
    61
  • oracle insert 多行 select

    oracle insert 多行 selectinsertintosys_user_role(roleid,userid)selectroleid,useridfromsys_tmp;多行插入insertintosys_user_role(roleid,userid) selectroleid,’$B’userid from sys_user_rolewhereuserid=’$A’;

    2022年7月17日
    23

发表回复

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

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