Java中的舍入
我想你在商场看到过,他们在你的购物总额中扣除或增加了一些金额,比如Java中的舍入,java,apache-commons,Java,Apache Commons,我想你在商场看到过,他们在你的购物总额中扣除或增加了一些金额,比如 如果您的总购买量为30.01,则四舍五入为30.00 如果您的总购买量为30.03,则四舍五入为30.05 如果您的总购买量为30.07,则四舍五入为30.05 如果您的总购买量为30.08,则四舍五入为30.10 我知道Java中的舍入、floor和ceil函数。但是我怎样才能做到以上这些呢? 是否有任何默认功能或UTIL可用?请查看。例如。我想这就是你要寻找的:首先,当你在零售环境(如商场)中操纵价格时,你应该使用整数或
- 如果您的总购买量为30.01,则四舍五入为30.00
- 如果您的总购买量为30.03,则四舍五入为30.05李>
- 如果您的总购买量为30.07,则四舍五入为30.05
- 如果您的总购买量为30.08,则四舍五入为30.10
是否有任何默认功能或UTIL可用?请查看。例如。我想这就是你要寻找的:首先,当你在零售环境(如商场)中操纵价格时,你应该使用整数或长整数,而不是浮点数或双精度整数,因为数字总是以2位小数表示,在零售业中处理总价的最佳方法是使用整数值 例如:
30.01f ---> 3001
30.03f ---> 3003
等等。。。这样做,我们简化了很多处理价格值的方法。
之后,您可以轻松创建自己的价格舍入算法
下面是一个示例round price函数,它应该完全满足您的要求:
public static int roundPrice(int price) {
String strPrice = String.valueOf(price);
int len = strPrice.length();
int lastDigit = Integer.valueOf( strPrice.substring(len -1) );
int toAdd = -lastDigit;
if(lastDigit > 7)
toAdd = 10 - lastDigit;
else if(lastDigit > 2)
toAdd = 5 - lastDigit;
return price + toAdd;
}
下面是一个如何使用它的示例:
public static void main(String[] ars) {
int[] nums = { 3001, 3003, 3007, 3008 };
for(int n : nums) {
System.out.println(roundPrice(n));
}
}
我不知道为什么一些用户评论你的问题,因为这是一个微不足道的问题,好像在这个论坛上有几个其他的回应,解释你想要什么。。。
我甚至不明白为什么你这个问题得了-5分。。。堆栈溢出的奥秘 这是家庭作业吗?如果是,请标记为。当您在右上角的搜索框中输入
java float round
时,您发现了什么?我得到了五千个点击率,当然你可以在列表中找到适合的东西:-)我们真的需要一个“作者根本没有做任何研究,滥用他们的个人谷歌”接近类…嗨,paxdiablo,Voo,我更新了我的查询,如果你能试着找到解决方案的话。我提出这个问题是为了稍微降低复杂性。