在Java中,我想要一个双BigDecimal
精度值并将其转换为a 并以一定的精度打印出它的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
}
}
它打印出这个巨大的东西:
47.47999999999999687361196265555918216705322265625
并不是
47.48
我进行BigDecimal
转换的原因是有时double值将包含很多小数位(即-.000012
),而将double转换为String时将产生科学计数法-1.2E-4
。我想以非科学计数法存储String值。
我希望BigDecimal总是这样具有两个精度单位:“ 47.48”。BigDecimal可以限制转换为字符串时的精度吗?
如果您使用另一个MathContext,它将显示47.48000
:
BigDecimal b = new BigDecimal(d, MathContext.DECIMAL64);
只需选择所需的上下文即可。
在Java中,我想取一个double值并将其转换为并打印出其字符串值以达到一定精度。 我进行转换的原因是,有时double值会包含很多小数位(即),而当将double转换为字符串时,会生成科学符号。我想用非科学符号存储字符串值。 我想让BigDecimal始终有两个精度单位,像这样:“47.48”。BigDecimal可以限制转换为字符串时的精度吗?
问题内容: 我正在使用完全基于双精度的应用程序,并且在将字符串解析为双精度的一种实用程序方法中遇到麻烦。我找到了一个解决方法,其中使用BigDecimal进行转换可以解决该问题,但是当我打算将BigDecimal转换回double时又提出了另一个问题:我失去了几个精度位。例如: 这将产生以下输出: 格式化的double值表明它已经失去了第三位的精度(应用程序要求较低的精度)。 如何获得BigDec
问题内容: 我们如何在Java中转换成?我有一个要求,我们必须使用Double作为参数,但是我们越来越明白了,所以我必须转换成。 问题答案: 您需要使用该方法从BigDecimal对象获取double值。
问题内容: 我怎样才能投来? 问题答案: 您必须创建一个新的。
问题内容: 我有Hibernate方法,它返回给我一个BigDecimal。我有另一个API方法,我需要将该数字传递给它,但是它接受Integer作为参数。我不能更改两种方法的返回类型或变量类型。 现在如何将BigDecimal转换为Integer并将其传递给第二种方法? 有没有解决的办法? 问题答案: 您将致电(或仅致电),如果您丢失了信息,它甚至会引发异常。返回一个int,但是自动装箱可以解决
问题内容: 我有一个XSD,要求我对经纬度使用BigDecimal。目前,我将经度/纬度作为双精度值,并将其转换为BigDecimal,但仅需要使用12个精度位即可。我还无法弄清楚该如何设置。谁能帮我这个? 问题答案: 问题的标题询问精度。BigDecimal区分小数位数和精度。小数位数是小数位数。您可以将精度视为有效数字的数量,也称为有效数字。 Clojure中的一些示例。 (在Clojure中