我正在使用跟随函数将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;
}
答案 0 :(得分:1)
你说," ...格式化双值......",但你的例子中没有任何格式化任何代码的代码。你的fd(x)函数以double作为参数,并返回一个double。它没有做任何其他事情。
如果你的数字确实在3.343E32附近,那么它们将会有很多位数:小数点前33位数。那是你期待的吗?
如果您尝试将double值转换为人类可读的文本,建议您查看String.format()。这样的事情,也许是:
public String fd(double x) {
return String.format("%.2f", x);
}