草庐IT

Rounding

全部标签

java - 如何以可变精度进行 Java String.format?

我想根据用户输入改变我正在格式化的字符串中double表示的精度。现在我正在尝试类似的东西:Stringfoo=String.format("%.*f\n",precision,my_double);但是我收到java.util.UnknownFormatConversionException。我对这种方法的灵感来自Cprintf和thisresource(第1.3.1节)。我在某处是否有简单的语法错误,Java是否支持这种情况,或者有更好的方法吗?编辑:我想我可以这样做:Stringfoo=String.format("%."+precision+"f\n",my_double);但

java - 将 double 舍入为 3 位有效数字

这个问题在这里已经有了答案:HowtoroundanumbertondecimalplacesinJava(39个回答)关闭8个月前。有人知道我如何将double值舍入到3个有效数字,就像本网站上的示例一样http://www.purplemath.com/modules/rounding2.htm 最佳答案 doubled=...;BigDecimalbd=newBigDecimal(d);bd=bd.round(newMathContext(3));doublerounded=bd.doubleValue();

java - 将 double 舍入为 3 位有效数字

这个问题在这里已经有了答案:HowtoroundanumbertondecimalplacesinJava(39个回答)关闭8个月前。有人知道我如何将double值舍入到3个有效数字,就像本网站上的示例一样http://www.purplemath.com/modules/rounding2.htm 最佳答案 doubled=...;BigDecimalbd=newBigDecimal(d);bd=bd.round(newMathContext(3));doublerounded=bd.doubleValue();

java - 使用 Math.round 舍入到小数点后一位?

我有这两个变量doublenum=540.512doublesum=1978.8然后我做了这个表达doubletotal=Math.round((num/sum*100)*10)/10;但我最终得到27.0。事实上,我还有很多其他变量,当我在表达式中使用它们时,我总是在第十位得到一个0。 最佳答案 我刚刚创建的有用方法...privatestaticdoubleround(doublevalue,intprecision){intscale=(int)Math.pow(10,precision);return(double)Math

java - 使用 Math.round 舍入到小数点后一位?

我有这两个变量doublenum=540.512doublesum=1978.8然后我做了这个表达doubletotal=Math.round((num/sum*100)*10)/10;但我最终得到27.0。事实上,我还有很多其他变量,当我在表达式中使用它们时,我总是在第十位得到一个0。 最佳答案 我刚刚创建的有用方法...privatestaticdoubleround(doublevalue,intprecision){intscale=(int)Math.pow(10,precision);return(double)Math

java - 如何在不四舍五入的情况下截断 BigDecimal

在我的代码中经过一系列计算后,我有一个BigDecimal值0.01954然后我需要将此BigDecimal乘以100并且我希望计算的值是1.95我不希望进行任何向上或向下舍入,我只想截断任何超过小数点后两位的值我尝试将比例设置为2,但后来我得到一个ArithmeticException说四舍五入是必要的。如何在不指定舍入的情况下设置比例? 最佳答案 使用RoundingMode.DOWN或RoundingMode.FLOOR.BigDecimalnewValue=myBigDecimal.setScale(2,RoundingMo

java - 如何在不四舍五入的情况下截断 BigDecimal

在我的代码中经过一系列计算后,我有一个BigDecimal值0.01954然后我需要将此BigDecimal乘以100并且我希望计算的值是1.95我不希望进行任何向上或向下舍入,我只想截断任何超过小数点后两位的值我尝试将比例设置为2,但后来我得到一个ArithmeticException说四舍五入是必要的。如何在不指定舍入的情况下设置比例? 最佳答案 使用RoundingMode.DOWN或RoundingMode.FLOOR.BigDecimalnewValue=myBigDecimal.setScale(2,RoundingMo

java - 使用 BigDecimal 数字进行四舍五入

我想设置两个BigDecimal数字a和b的比例。如本例所示:BigDecimala=newBigDecimal("2.6E-1095");BigDecimalb=newBigDecimal("2.7E-1105");inti=112,j=1;BigDecimalaa=a.setScale(i+j);BigDecimalbb=b.setScale(i+j);当我运行时,我遇到了这个异常:java.lang.ArithmeticException:Roundingnecessaryatjava.math.BigDecimal.divideAndRound(BigDecimal.java:

java - 使用 BigDecimal 数字进行四舍五入

我想设置两个BigDecimal数字a和b的比例。如本例所示:BigDecimala=newBigDecimal("2.6E-1095");BigDecimalb=newBigDecimal("2.7E-1105");inti=112,j=1;BigDecimalaa=a.setScale(i+j);BigDecimalbb=b.setScale(i+j);当我运行时,我遇到了这个异常:java.lang.ArithmeticException:Roundingnecessaryatjava.math.BigDecimal.divideAndRound(BigDecimal.java:

Java:四舍五入到最接近 5 的倍数(向上或向下)

我需要将一个数字四舍五入到最接近的5的倍数(向上或向下)。例如,这里是数字列表及其旁边需要向上/向下舍入的数字。12.51062.16068.37074.57580.780数字只会是正数。 最佳答案 还没有测试过,但是5*(Math.round(f/5));应该可以工作 关于Java:四舍五入到最接近5的倍数(向上或向下),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14196