我有很多数据,我从数据库中检索,并使用这些数据(其中有些是添加)更改双回合
一个图表的图表如何显示百分比,因此,我必须计算我的数据到百分比。
我的老板有另一个程序,也显示百分比(但没有图表),并在我的程序后,他来找我说,我的表中的数字是错误的。
我看着它在我,发现双(即计入百分比)为以下数量:85.53178390026166
显然,我的程序四舍五入这个数字高达86
现在我的问题是:除非0.75或更近,否则有什么办法可以阻止程序四舍五入吗?而在这个例子中,倒数到85?
我有很多数据,我从数据库中检索,并使用这些数据(其中有些是添加)更改双回合
一个图表的图表如何显示百分比,因此,我必须计算我的数据到百分比。
我的老板有另一个程序,也显示百分比(但没有图表),并在我的程序后,他来找我说,我的表中的数字是错误的。
我看着它在我,发现双(即计入百分比)为以下数量:85.53178390026166
显然,我的程序四舍五入这个数字高达86
现在我的问题是:除非0.75或更近,否则有什么办法可以阻止程序四舍五入吗?而在这个例子中,倒数到85?
那么首先请注意,85.53
是CLOSER到86
比它是到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
如果你的老板是那么挑剔,那么我建议你不要把他们包围起来,但是你可以使用你与老板谈判的几个小数位来显示数字。
试试这个
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);
试试这个:
int returnRoundOffNumber(Double number)
{
if((number-Integer.parseInt(number)>0.75)
return Math.ceil(number);
else
return Math.floor(number);
}