Tag: 舍入

使用Java android中的Math.round方法舍入到小数点后6位

我正在使用 double i2 = value * 2.23694; i2 = (double)(Math.round(i2 * 100)) / 100; 用于舍入双打。 但它只向小数点后2位舍入。 我希望它是小数点后6位。 有没有办法使用Math.round并有6位小数?

Java和SQL Server中的精确噩梦

我一直在努力解决Java和SQL Server中的精确噩梦,直到​​我不知道为止。 就个人而言,我理解这个问题及其根本原因,但向全球客户解释这一点是不可行的(至少对我而言)。 情况就是这样。 我在SQL Server中有两列–Qty INT和Price FLOAT。 这些值为 – 1250和10.8601 – 因此,为了获得总值,其数量*价格和结果为13575.124999999998(在Java和SQL Server中)。 那是对的。 问题是这个 – 客户端不想看到它,他们只看到这个数字为13575.125就是这样。 在一个地方,他们可以用2位小数精度看到它,另外4位小数。 当以4位小数显示时,数字是正确的 – 13575.125,但是当以2位小数显示时,他们认为它是错误的 – 13575.12 – 应该是13575.13! 帮帮我。

如何自定义舍入的forms

我的问题似乎很简单,但仍然无法得到有效的东西。 我需要自定义Math.round舍入格式或其他东西,使其工作如下: 如果数字是1.6,他应该舍入到1,如果大于或等于1.7应该舍入到2.0。 所以使用#.6的所有其他小数结果我正在将1.6舍入为2的方式应舍入为1。 我怎样才能做到这一点? 谢谢!

将浮点值舍入到java中最接近的整数的最有效方法是什么?

我已经看到很多有关舍入浮动值的SO的讨论,但考虑到效率方面没有可靠的问答。 所以这里是: 将浮点值舍入到最接近的整数的最有效(但正确)方法是什么? (int) (mFloat + 0.5); 要么 Math.round(mFloat); 要么 FloatMath.floor(mFloat + 0.5); 或者是其他东西? 我最好使用标准java库中可用的东西,而不是我必须导入的一些外部库。

Java中Math.rint()和Math.round()之间的区别

Math.rint()和Math.round()之间有什么区别?

什么是HALF_EVEN四舍五入?

我无法想象我需要在Java中使用RoundingMode.HALF_EVEN 。 这种舍入模式是什么? 我什么时候想用它? 请给我一些真实世界的例子。

如何正确显示最高两位小数(美分)的价格,包括Java中的尾随零?

这里有一个关于在Java中舍入小数的好问题。 但我想知道如何在我的程序中包含尾随零以显示价格:$ 1.50,$ 1.00 简单的解决方案 String.format(“%.2g%n”, 0.912385); 工作正常,但如果它在最后一个小数位,则省略尾随零。 即使我只使用这样的表达式,问题出现在我的程序中: double price = 1.50; 当我使用不同的价格(添加,乘法等)进行计算时,结果主要显示如下: $2.5000000000000003 因此,使用String.format可以正常工作,但它会将上面的示例截断为 $2.5 是否有正确的方法在小数点后第二位显示尾随零? 如果计算的输出应该是,则两个都为零 $2.00

到最近的好号码

我正在编写一个应用程序,需要将标签舍入到最近的’nice’数字。 我将在下面放一些代码来certificate这一点,但我的问题是我使用了一系列其他ifs来找到这个数字,但我不能确定上限,所以这不是一个好的策略。 有没有可以帮助我的已知算法或资源? if (diff <= 1) { roundAmount = 0.2; } else if (diff <= 5) { roundAmount = 1; } else if (diff <= 10) { roundAmount = 2; } else if (diff <= 25) { roundAmount = 5; } else if (diff <= 50) { roundAmount = 10; } else if (diff […]

格式化双精度到2位小数不起作用

我想围绕这个双倍: 3.499999999999999 至: 3.50 我已经使用了这两种方法: DecimalFormat df = new DecimalFormat(“0.00”); double result = Double.valueOf(df.format(input)); System.out.println(answer); 和 public double round(double input) { int decimalPlace = 2; BigDecimal bd = new BigDecimal(input); bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP); return (bd.doubleValue()); } 但它继续印刷: 3.5 有人有解决方案吗? 因为我真的认为这应该有效。 谢谢你的帮助。

java中的浮点乘法

可能重复: 如何在Java中将数字舍入到n个小数位 当在java中乘以两个数字时,会发生以下情况: double a = 9.495 * 100; 预期结果: a = 949.5; 但获得的结果是: a = 949.4999999999999 当我尝试以小数点后两位舍入数字9.495时,结果是9.49而不是9.50 任何想法如何解决这个问题?