猿问

将两个整数相除并将结果四舍五入到最接近的整数

我有两个整数 a,b 总是 >= 0。我想将 a 除以 b 并将四舍五入的百分比返回到最接近的整数。

示例:18/38 应返回 47,13/38 应返回 34。

我怎样才能做到这一点?

我尝试了以下但没有奏效

c = Math.round(a/b) * 100;


梵蒂冈之花
浏览 115回答 4
4回答

眼眸繁星

由于a和b是整数,a/b将使用整数除法,并且只返回结果的“整体”部分。相反,您应该乘以a(100.0注意.0,这使它成为double文字!)以使用浮点除法,然后ceil是结果,并将其截断为int:c = (int) Math.ceil(100.0 * a / b);

蝴蝶刀刀

public static void main(String[] args){int a=18,b=38,c=0;c = (int) Math.round(100.0 * a / b);    System.out.println(c);}正如@Mureinik 所说,a并且b是整数,他们将使用整数除法。您应该将 100 乘以上面的类似。并继续使用.round而不是.ceil为了得到 47 作为输出,这.ceil将给你 48 作为输出。

森林海

c = (int) Math.round(100.0 * a / b);这应该会产生预期的结果。

江户川乱折腾

您需要执行以下操作才能获得结果Double res= Double.valueof(a/b);DecimalFormat decimalFormat = new DecimalFormat("#.00");String num= decimalFormat.format(res);Int finalResult = Integer.valueof(num)*100;谢谢
随时随地看视频慕课网APP

相关分类

Java
我要回答