草庐IT

BIGDECIMAL

全部标签

java - float 舍入到2位小数java

我正在尝试将float舍入到2位小数。我有2个浮点值:1.98529.294998它们都需要四舍五入,所以我最终得到以下内容:1.9929.30当我使用下面的方法时:publicstaticFloatprecision(intdecimalPlace,Floatd){BigDecimalbd=newBigDecimal(Float.toString(d));bd=bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);returnbd.floatValue();}结果是:1.9929.29 最佳答案

java - 为什么使用 truncate 和 BigDecimal 会出现这种奇怪的输出?

我正在调用一个截断方法来截断double值,以便小数点后应该有一个数字(不四舍五入),对于前。截断(123.48574)=123.4。我的截断方法是这样的publicdoubletruncate(doublex){longy=(long)(x*10);doublez=(double)(y/10);returnz;}除了这个奇怪的输出外,它几乎适用于所有值。doubled=0.787456;d=truncate(d+0.1);//gives0.8asexpected.Okay.但是,doubled=0.7;d=truncate(d+0.1);//shouldalsogive0.8.But

java - 如何在 Java 中处理 float 的精度错误?

我想知道在Java中修复精度错误的最佳方法是什么。正如您在以下示例中看到的,存在精度错误:classFloatTest{publicstaticvoidmain(String[]args){Floatnumber1=1.89f;for(inti=11;i显示的结果是:loopvalue:1120.789999loopvalue:2241.579998loopvalue:4483.159996loopvalue:88166.31999loopvalue:176332.63998loopvalue:352665.27997loopvalue:7041330.5599此外,如果有人可以解释为

BigDecimal 的 java 数学库,它允许空值

是否有具有BigDecimal基本操作并允许空值的BigDecimal库?出于数学目的,应将Null视为0。我不想对可能的空值进行所有空值检查。您永远不允许在数据库、应用程序或View中使用空值并使用newBigDecimal(0)初始化所有内容,或者对可为空值的每次使用执行空值检查。类似于:publicstaticBigDecimaladd(finalBigDecimalvalue,finalBigDecimalaugend){if(value==null)returnaugend;elseif(augend==null)returnvalue;elsereturnvalue.add

java BigDecimal使用(小数点,字符串等转换)

一、BigDecimal介绍 Java中提供了操作大数字(超过16位有效位)的类,即java.math.BigInteger类和java.math.BigDecimal类,用于高精度计算。float和Double只能用来做科学计算、工程计算等;在商业计算中,对数字精度要求较高(例如货币值),必须使用BigInteger类和BigDecimal类,它支持任何精度的定点数,可以用它来精确计算。BigIntegerBigDecimal大整数大小数以BigDecimal为例。BigDecimal类创建的是对象,不能使用传统的+、-、*、/等算术运算符进行数学运算,而必须调用它的方法。方法的参数也必须是

java - ASP .net C# Decimal 与 Java Double 之间的舍入不匹配

我正在将.NET代码转换为Java,遇到了精度不匹配的问题。.NET代码:privatedecimalroundToPrecision(decimalnumber,decimalroundPrecision){if(roundPrecision==0)returnnumber;decimalnumberDecimalMultiplier=Math.Round(number/roundPrecision,MidpointRounding.AwayFromZero);returnnumberDecimalMultiplier*roundPrecision;}在上面的代码中调用roundTo

java - 我可以在 hibernate hbm 中使用 BigDecimal 作为 id 类型吗?

我正在使用hibernate。它具有id列,精度为20,如下所示,但为NUMBER类型。NUMBER(38,20)-这是表(Oracle数据库)的id列的大小。此id由我们的应用程序生成。在实体中,如果我使用Float或Double,它不能容纳20个精度。但是java.math.BigDecimal可以容纳这么多精度。但问题是我可以在hbm中使用BigDecimal吗?会有什么问题吗?有时我可能无法准确发送ID。那个时候hibernate会生成任何空精度和插入吗?请推荐! 最佳答案 您可以使用type="big_decimal"。在

没有 E 的 Java BigDecimal

我有一个BigDecimal变量BigDecimalx=newBigDecimal("5521.0000000001");公式:x=x.add(newBigDecimal("-1").multiply(x.divideToIntegralValue(newBigDecimal("1.0"))));我想删除整数部分,以获得值x=("0.0000000001"),但我的新值是1E-10而不是0.0000000001。 最佳答案 要获得BigDecimal的String表示而不带指数部分,您可以使用BigDecimal.toPlainSt

java - 在 JAXB 编码中使用 BigDecimal

我有一个带有JAXB字段注释的REST网络服务。例如,@XmlAccessorType(XmlAccessType.PROPERTY)publicclassMyClass{privateBigDecimalsum;//+getterandsetter}如果字段“sum”包含大值,例如1234567890.12345,它编码为1.23456789012345E9如何编写仅编码此类的规则? 最佳答案 创建适配器puclicclassBigDecimalAdaptorimplementsXmlAdapter并用于(XmlAccessTyp

java - 如何使用 BigDecimal 验证精度和比例?

我正在尝试验证大十进制的精度和小数位数。我想验证一个大的小数不超过10的精度或2的比例。我尝试做一个maxlength这样该值就不会违反我的db长度限制,但无法得到它工作。有人可以为我指明解决此问题的方向吗? 最佳答案 BigDecimal类具有三个可能对此感兴趣的方法:precision(),返回未缩放值的位数(例如,对于数字123.45,返回的精度为5)scale(),当为正数时返回小数点后的位数(scale()可以为负数,在这种情况下,未缩放的值数字乘以10的负数次方。例如,-3的比例表示未缩放的值乘以1000),stripT