大侠救我 JAVA整数除法的向上取整的语句怎么写?救我!

时间:2023-01-07 01:47:09
例如:

int v1,v2,v3;
v1 = 10;
v2 = 3;
v3 = 10/3;

通过什么语法能求出 v3 == 4? 多谢!

11 个解决方案

#1


int v1,v2,v3;
v1 = 10;
v2 = 3;
v3 = 10/3;

if (v3 != v1/v2) v3 ++;

#2


public int getMyInt(int a,int b) {
return(((double)a/(double)b)>(a/b)?a/b+1:a/b);
}
调用:
System.out.println(getMyInt(10,3));

#3


谢谢!

 有没有用函数直接求的方法?

 到今日深夜12:00止,此贴结贴。

 如果没有别的答案,分数给上面回答的朋友。如果还有朋友热心回答则分数大家分。

 再次感谢。

#4


song的是错误的。
double t=((double)v1)/((double)v2);
if(v3!=t){
 if(t<0)
   v3--;
 else
   v3++;
}

#5


二楼那个方法是通用的,你可以建立一个类测试,进行比较,如下:
public class myClass {
public static int getMyInt(int a,int b) {
return(((double)a/(double)b)>(a/b)?a/b+1:a/b);
}

public static void main(String args[]) {
System.out.println(getMyInt(10,3));
System.out.println(getMyInt(9,3));
}
}

#6


Math.floor((double)v1/(double)v2+1);

#7


Math.ceil(v1/v2)+1

#8


你应该考虑一下分为几种情况

第一种是整除,第二种是有余数,然后自己写方法,直接的方法好像是没有的。

PS:负数的时候不会有特殊要求吧?

#9


感谢大家答复。

 此贴结贴!

#10


另外补充一下:

 jianfeizhu(飞扬)和 rainight(雨夜聆风) 的答案当刚好整除的时候似乎不行。
   “Math.floor((double)v1/(double)v2+1);”
   “Math.ceil(v1/v2)+1”

#11


BigDecimal b1 = new BigDecimal(10);
BigDecimal b2 = new BigDecimal(3);
BigDecimal b3 = new BigDecimal(2);
System.out.println(b1.divide(b2,0,BigDecimal.ROUND_HALF_DOWN).intValue());
System.out.println(b1.divide(b3,0,BigDecimal.ROUND_HALF_DOWN).intValue());

#1


int v1,v2,v3;
v1 = 10;
v2 = 3;
v3 = 10/3;

if (v3 != v1/v2) v3 ++;

#2


public int getMyInt(int a,int b) {
return(((double)a/(double)b)>(a/b)?a/b+1:a/b);
}
调用:
System.out.println(getMyInt(10,3));

#3


谢谢!

 有没有用函数直接求的方法?

 到今日深夜12:00止,此贴结贴。

 如果没有别的答案,分数给上面回答的朋友。如果还有朋友热心回答则分数大家分。

 再次感谢。

#4


song的是错误的。
double t=((double)v1)/((double)v2);
if(v3!=t){
 if(t<0)
   v3--;
 else
   v3++;
}

#5


二楼那个方法是通用的,你可以建立一个类测试,进行比较,如下:
public class myClass {
public static int getMyInt(int a,int b) {
return(((double)a/(double)b)>(a/b)?a/b+1:a/b);
}

public static void main(String args[]) {
System.out.println(getMyInt(10,3));
System.out.println(getMyInt(9,3));
}
}

#6


Math.floor((double)v1/(double)v2+1);

#7


Math.ceil(v1/v2)+1

#8


你应该考虑一下分为几种情况

第一种是整除,第二种是有余数,然后自己写方法,直接的方法好像是没有的。

PS:负数的时候不会有特殊要求吧?

#9


感谢大家答复。

 此贴结贴!

#10


另外补充一下:

 jianfeizhu(飞扬)和 rainight(雨夜聆风) 的答案当刚好整除的时候似乎不行。
   “Math.floor((double)v1/(double)v2+1);”
   “Math.ceil(v1/v2)+1”

#11


BigDecimal b1 = new BigDecimal(10);
BigDecimal b2 = new BigDecimal(3);
BigDecimal b3 = new BigDecimal(2);
System.out.println(b1.divide(b2,0,BigDecimal.ROUND_HALF_DOWN).intValue());
System.out.println(b1.divide(b3,0,BigDecimal.ROUND_HALF_DOWN).intValue());