草庐IT

BIGDECIMAL

全部标签

java - 如何将字符串解析为 BigDecimal?

这个问题在这里已经有了答案:SafeStringtoBigDecimalconversion(9个回答)关闭9年前。我有这个字符串:10,692,467,440,017.120(这是一个数量)。我想将其解析为BigDecimal。问题是我尝试了DecimalFormat和NumbeFormat都是徒劳的。 最佳答案 试试这个//CreateaDecimalFormatthatfitsyourrequirementsDecimalFormatSymbolssymbols=newDecimalFormatSymbols();symbol

java - 将 double 转换为 BigDecimal 并设置 BigDecimal 精度

在Java中,我想取一个double值并将其转换为BigDecimal并将其String值打印到一定精度。importjava.math.BigDecimal;publicclassMain{publicstaticvoidmain(String[]args){doubled=-.00012;System.out.println(d+"");//Thisprints-1.2E-4doublec=47.48000;BigDecimalb=newBigDecimal(c);System.out.println(b.toString());//Thisprints47.47999999999

java - 将 double 转换为 BigDecimal 并设置 BigDecimal 精度

在Java中,我想取一个double值并将其转换为BigDecimal并将其String值打印到一定精度。importjava.math.BigDecimal;publicclassMain{publicstaticvoidmain(String[]args){doubled=-.00012;System.out.println(d+"");//Thisprints-1.2E-4doublec=47.48000;BigDecimalb=newBigDecimal(c);System.out.println(b.toString());//Thisprints47.47999999999

java - 在 Java 中舍入一个 double

我找到了一个很好的舍入解决方案:staticDoubleround(Doubled,intprecise){BigDecimalbigDecimal=newBigDecimal(d);bigDecimal=bigDecimal.setScale(precise,RoundingMode.HALF_UP);returnbigDecimal.doubleValue();}但是,结果令人困惑:System.out.println(round(2.655d,2));//->2.65System.out.println(round(1.655d,2));//->1.66为什么要给出这个输出?我正

java - 在 Java 中舍入一个 double

我找到了一个很好的舍入解决方案:staticDoubleround(Doubled,intprecise){BigDecimalbigDecimal=newBigDecimal(d);bigDecimal=bigDecimal.setScale(precise,RoundingMode.HALF_UP);returnbigDecimal.doubleValue();}但是,结果令人困惑:System.out.println(round(2.655d,2));//->2.65System.out.println(round(1.655d,2));//->1.66为什么要给出这个输出?我正

java - 将所有 BigDecimal 操作设置为特定精度?

我的Java程序以高精度计算为中心,需要精确到至少120位小数。因此,所有非整数都将在程序中由BigDecimals表示。显然,我需要指定BigDecimals的舍入精度,以避免无限小数表达式等。目前,我发现必须在BigDecimal的每个实例化或数学运算中指定准确性是一件非常麻烦的事情。有没有办法为所有BigDecimal计算设置“全局精度”?(比如python中Decimal模块的Context.prec())谢谢规范:Javajre7SEWindows7(32) 最佳答案 (几乎)原创没那么简单,但你可以创建一个MathCon

java - 从 BigDecimal 获取整数

如果我有一个值为6.54的BigDecimal,我如何将其转换为654的整数值?即没有小数点。intValue()只会转换为6。 最佳答案 BigDecimal.unscaledValue()将返回值为654的BigInteger。然后,如果您特别需要,您可以调用intValue()将其转换为int。 关于java-从BigDecimal获取整数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

java - 你会在 MySQL 中映射 Java/Hibernate 中的 BigDecimal 什么类型?

在经历了之前开发的大量代码之后,我意识到我需要移动所有基于金钱的列以不使用float学。在Java方面,这意味着使用BigDecimal,但是当使用Hibernate/JPA和MySQL5时,生成该列的适当MySQL数据类型是什么? 最佳答案 十进制和数字。TherecommendedJavamappingfortheDECIMALandNUMERICtypesisjava.math.BigDecimal.Thejava.math.BigDecimaltypeprovidesmathoperationstoallowBigDecim

java - 你会在 MySQL 中映射 Java/Hibernate 中的 BigDecimal 什么类型?

在经历了之前开发的大量代码之后,我意识到我需要移动所有基于金钱的列以不使用float学。在Java方面,这意味着使用BigDecimal,但是当使用Hibernate/JPA和MySQL5时,生成该列的适当MySQL数据类型是什么? 最佳答案 十进制和数字。TherecommendedJavamappingfortheDECIMALandNUMERICtypesisjava.math.BigDecimal.Thejava.math.BigDecimaltypeprovidesmathoperationstoallowBigDecim

java - 将 float 转换为 BigDecimal 然后再转换回 float

我正在尝试将float转换为BigDecimal,然后进行一些数学计算。之后,我需要Float中的最终结果。据我所知,将float变成BigDecimal数字的唯一安全方法是使用字符串构造函数。我有两种方法,但都没有用。两者都给我额外的0.000001值方法一:Floatnum1=13.846154f;BigDecimalcalculation=newBigDecimal(Float.toString(num1));BigDecimalnum2=newBigDecimal("2.0").add(calculation);FloatfinalResults=num2.floatValue