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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTML制作简单的页面[通俗易懂]

    HTML制作简单的页面[通俗易懂]一.HTML页面制作代码部分<html> <head> <metacharset=”utf-8″> <title>MusicLoginForm</title> <!–css代码声明–> <styletype=”text/css”> //div的设置 #showdiv{ width:450px; height:530px; border:solid2px

    2022年9月2日
    2
  • 如何查看Linux版本信息?

    如何查看Linux版本信息?这里所谓的Linux版本信息,包括Linux内核版本信息和Linux系统版本信息。下面分别介绍>>>(笔者在Ubuntu12.04中进行操作并截图如下)一、查看Linux内核版本信息方法1:登陆Linux,在终端输入cat/proc/version方法2:登陆Linux,在终端输入uname-a方法3:登陆Linux,在终端输入uname

    2022年4月27日
    51
  • informix 初探[转] windows informix[通俗易懂]

    informix 初探[转] windows informix[通俗易懂]informix初探[转]windowsinformixdbaccesshttp://blog.csdn.net/likelynn/archive/2009/02/27/3941680.aspx又找到个入门好文,财富啊财富.转载开始:===========================================================项目需要,接触了一下…

    2022年10月19日
    1
  • JOURNAL OF MOLECULAR LIQUIDS_bert 知识蒸馏

    JOURNAL OF MOLECULAR LIQUIDS_bert 知识蒸馏这片论文是Hinton在15年提出的,为了提升模型的有效性,模型的复杂度的不断增加,上线实时提供服务成了难题,而知识蒸馏的思路正好可以解决这个问题,同时模型的效果相比复杂模型也不会下降太多。论文中以生物中蝴蝶变态发育作类比介绍知识蒸馏:通过不同的形态,完成同样的使命(任务)。Hinton提出可以通过一个简单模型直接学习复杂模型的概率分布结果,如果one-hot的目标是一种hard-targets,那么这种就是一种soft-targets。一种方法是直接比较logits来避免这个问题。具体地,对于每一.

    2022年8月11日
    11
  • MySQL数据库建表语句

    MySQL数据库建表语句**建立一个叫student的表**CREATETABLE`student`(**id为int类型设置不能为空值**`id`INTNOTNULLauto_incrementprimarykeyCOMMENT’学生id’,`name`VARCHAR(16)NOTNULLCOMMENT’学生姓名’,`sex`CHAR(1)DEFAULT’男’COMMENT’性别’…

    2022年9月8日
    0
  • 按位取反计算_c语言按位异或运算符

    按位取反计算_c语言按位异或运算符今天我在看简明Python指南的时候,看到其中一个计算机计算的问题,它是这样描述的:x的按位取反结果为-(x+1)~5输出-6。有关本例的更多细节可以参阅:http://stackoverflow.com/a/11810203看到这儿我就疑惑了,之前在大学中学习的计算机基础课程又还给教材了,hhh…无奈,我只好取网上搜寻解析的答案,而网上的解释说得不太让人明白,自己结合他人的解

    2022年8月14日
    3

发表回复

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

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