指数值vs double(已使用大十进制转换)

时间:2014-08-13 18:58:29

标签: java double exponential

我正在使用跟随函数将double值格式化为x.xx,但之后结果值开始以指数值结束(我已经阅读了建议使用DecimalFormat或纯文本的答案( )方法,但每个系统给出错误的地方改变类型...返回类型我现在丢失了一点

有人可以帮我跟进方法调整,以便返回值可以显示为正常数字而不是3.343E32

请注意,以下函数FD在代码中多次使用,所以我想在此处更改它,所以我不必应用格式化每个结果/变量..

public double fd(double x) {
    BigDecimal bd_tax = new BigDecimal(x);
    BigDecimal formated = bd_tax.setScale(2, BigDecimal.ROUND_UP);
    x = Double.valueOf(formated.doubleValue());
    return x;
}

1 个答案:

答案 0 :(得分:1)

你说," ...格式化双值......",但你的例子中没有任何格式化任何代码的代码。你的fd(x)函数以double作为参数,并返回一个double。它没有做任何其他事情。

如果你的数字确实在3.343E32附近,那么它们将会有很多位数:小数点前33位数。那是你期待的吗?

如果您尝试将double值转换为人类可读的文本,建议您查看String.format()。这样的事情,也许是:

public String fd(double x) {
    return String.format("%.2f", x);
}