改变双轮的方式

时间:2012-11-14 12:26:45

标签: java double rounding

我有很多数据可以从数据库中检索并使用这些数据创建图表(其中一些是添加的)

其中一个图表显示百分比,因此我必须将我的数据计算为百分比。

我的老板还有另一个显示百分比的程序(但是没有图表),在完成我的程序后,他来找我并说我表中的数字是错误的。

我查看了我,发现双倍(按百分比计算)是以下数字: 85.53178390026166

显然我的程序将这个数字四舍五入到86.

现在我的问题是:除非它是.75或更接近,否则我有什么方法可以阻止程序四舍五入?而在这个例子中向下舍入到85?

4 个答案:

答案 0 :(得分:3)

首先请注意,85.5386更接近85。话虽这么说,如果你想要它只是在.75或更高的时候进行整理,那么:

Math.floor(number + .25);

示例:

10.2 -> 10.45 -> 10
10.6 -> 10.85 -> 10
10.74 -> 10.99 -> 10
10.76 -> 11.01 -> 11

答案 1 :(得分:2)

试试这个

import java.math.BigDecimal;
BigDecimal myDec = new BigDecimal( myDouble );
myDec = myDec.setScale( 2, BigDecimal.ROUND_HALF_UP );




import java.math.BigDecimal;
BigDecimal myDec = new BigDecimal( myDouble );
myDec = myDec.setScale( 2, BigDecimal.ROUND_HALF_DOWN );

答案 2 :(得分:1)

试试这个:

int returnRoundOffNumber(Double number)
{  

if((number-Integer.parseInt(number)>0.75)
 return Math.ceil(number);

else   
  return Math.floor(number);
}

答案 3 :(得分:0)

如果你的老板很挑剔,那么我建议你不要围绕它们,但是你可以使用你与老板谈判的一些小数位来显示数字。