Java如何避免使用double类型时展示科学计数

简介: Java如何避免使用double类型时展示科学计数

昨天业务找过来说业务上的金额不对,查了日志才知道渠道送过来的数据,由于金额比较大自动转成科学计数了,金额是18882138.23,结果转成1.888213823E7了。问了那边才知道他们使用的是double类型;

一、发生场景

整数位超过7位时,就会自动转成科学计数;下面我们来看下

    @PostMapping(value = "findGoods")
    public Goods getValue(){
        Goods goods=new Goods();
        double premiun=18882138.23;
        goods.setName("超级计算机");
        goods.setPremium(premiun);
        return goods;
    }

使用Postman来调一下,响应结果:

{
    "name": "超级计算机",
    "premium": 1.888213823E7
}

二、解决方案

使用BigDecimal代替

    @PostMapping(value = "findGoods1")
    public Goods getValue1(){
        Goods goods=new Goods();
        BigDecimal premiun=new BigDecimal("18882138.23").setScale(2);
        goods.setName("超级计算机");
        goods.setPremium1(premiun);
        return goods;
    }

setScale()方法设置小数点后保留位数

大家有使用到BigDecimal要转字符串场景时,要注意调用其toPlainString()方法进行转化,不然某些场景下时,也会发生自动转为科学计数的情况;


网上搜了很多文章,大家都是乱抄乱套的,验证了一下根本就不会出现转科学计数的情况,后面看到一篇文章,大家有兴趣可以参考一下进行研究;BigDecimal科学计数场景


目录
相关文章
|
8天前
|
Java 编译器
Java“返回类型为 void 的方法不能返回一个值”解决
在 Java 中,如果一个方法的返回类型被声明为 void,那么该方法不应该包含返回值的语句。如果尝试从这样的方法中返回一个值,编译器将报错。解决办法是移除返回值语句或更改方法的返回类型。
|
10天前
|
设计模式 Java
Java“不能转换的类型”解决
在Java编程中,“不能转换的类型”错误通常出现在尝试将一个对象强制转换为不兼容的类型时。解决此问题的方法包括确保类型间存在继承关系、使用泛型或适当的设计模式来避免不安全的类型转换。
|
7天前
|
Java
Java 中锁的主要类型
【10月更文挑战第10天】
|
14天前
|
安全 Java
Java“不兼容类型” 错误怎么查找解决
在 Java 中遇到“不兼容类型”错误时,首先理解错误信息,它表明试图将一种类型赋给不兼容的类型。检查代码中类型不匹配的赋值、方法调用参数类型不匹配、表达式类型不兼容及泛型类型不匹配等问题。解决方法包括进行类型转换、修改代码逻辑、检查方法参数和返回类型以及处理泛型类型不匹配。通过这些步骤,可以有效解决“不兼容类型”错误,确保代码类型兼容性良好。
|
1月前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
38 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
13天前
|
Java 程序员 编译器
Java中的异常类型
Java中的异常类型
19 3
|
13天前
|
Java 开发者
Java“类 Y 中的方法 X 不能应用于给定类型”解决
在Java中遇到“类Y中的方法X无法应用于给定类型”的错误时,通常是因为方法调用时的参数类型与定义不符。解决此问题需检查方法签名,确保传递的参数类型正确无误,或使用显式类型转换以匹配方法所需的参数类型。这种错误提示帮助开发者及时修正类型不匹配的问题。
|
16天前
|
Java 程序员 编译器
Java中的异常类型
Java中的异常类型
16 3
|
16天前
|
安全 Java 编译器
Java 泛型深入解析:类型安全与灵活性的平衡
Java 泛型通过参数化类型实现了代码重用和类型安全,提升了代码的可读性和灵活性。本文深入探讨了泛型的基本原理、常见用法及局限性,包括泛型类、方法和接口的使用,以及上界和下界通配符等高级特性。通过理解和运用这些技巧,开发者可以编写更健壮和通用的代码。
|
25天前
|
存储 安全 Java
Java 数据结构类型总结
在 Java 中,常用的数据结构包括基础数据结构(如数组和字符串)、集合框架(如 Set、List 和 Map 接口的多种实现)、特殊数据结构(如栈、队列和双端队列)、链表(单链表、双链表和循环链表)以及图和树等。这些数据结构各有特点和适用场景,选择时需考虑性能、内存和操作需求。集合框架提供了丰富的接口和类,便于处理对象集合。