返回信息流rt
比如200/3=67而不是66
这是一条镜像帖。来源:北邮人论坛 / java / #14120同步于 2010/4/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[小白问题求助] java中两整数相除如何整数位四舍五入
yaoyan
2010/4/20镜像同步24 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我想到一个特别弱的解决办法
整型的结果为一个值
然后转换为double的另一个计算出来的值,小数部分大于等于0.5就让最终结果为整型的(66+1),不然的话就是66...
【 在 yaoyan (谣言&妖艳&耀眼) 的大作中提到: 】
: rt
: 比如200/3=67而不是66
写的不好,对付用吧
public class Test {
/**
* @author thinker
*/
public static void main(String[] args) {
System.out.println("19/2 = " + Division(19,2));
System.out.println("200/3 = " + Division(200,3));
System.out.println("48/4 = " + Division(48,4));
}
private static int Division(int a,int b){
if(a-a/b*b >= b/2)
return a/b+1;
return a/b;
}
}
运行结果:
19/2 = 10
200/3 = 67
48/4 = 12
【 在 yaoyan (谣言&妖艳&耀眼) 的大作中提到: 】
: rt
: 比如200/3=67而不是66
那个a-a/b*b>=b/2
好有意思阿
【 在 Thinker (思想者) 的大作中提到: 】
: 写的不好,对付用吧
:
: public class Test {
: ...................
为啥呢?
分析这个式子好费神...
【 在 Thinker (思想者) 的大作中提到: 】
: 好像写成 2*a -2*a/b*b >= b 应该更好一些
: 对,应该改成这样
那个运行不是所要的结果 不对
所以,我又删掉了
【 在 AimGraduate (虎头虎脑) 的大作中提到: 】
: 为啥呢?
: 分析这个式子好费神...