相关疑难解决方法(0)

将double转换为BigDecimal并设置BigDecimal Precision

在Java中,我想获取一个double值并将其转换为a BigDecimal并将其String值打印到一定的精度.

import java.math.BigDecimal;
public class Main {
    public static void main(String[] args) {
        double d=-.00012;
        System.out.println(d+""); //This prints -1.2E-4

        double c=47.48000;
        BigDecimal b = new BigDecimal(c);
        System.out.println(b.toString()); 
        //This prints 47.47999999999999687361196265555918216705322265625 
    }
}
Run Code Online (Sandbox Code Playgroud)

它打印这个巨大的东西:

47.47999999999999687361196265555918216705322265625

并不是

47.48

我正在进行BigDecimal转换的原因有时候,double值会包含很多小数位(即-.000012),将double转换为String时会产生科学记数法-1.2E-4.我想以非科学记数法存储String值.

我想让BigDecimal总是有两个精度单位:"47.48".BigDecimal可以限制转换为字符串的精度吗?

java double bigdecimal

58
推荐指数
6
解决办法
20万
查看次数

标签 统计

bigdecimal ×1

double ×1

java ×1