Java除法向上取整,java 相除取整
00-1010前言:方法一:添加三元运算符的逻辑代码;方法二:使用ceil函数;方法三:其他逻辑的最终总结;附:java向上舍入函数Math.ceil()
00-1010在Java中,两个整数相除。如果不可分,默认情况下向下舍入。例如,11除以3的结果是3。然而,在某些情况下(例如,11个糖果,每3个糖果,少于3个糖果,可以堆叠?),我们需要围捕。这种情况我们该怎么办?
目录
x/y (x % y!=0 ?1 : 0);这个方法的逻辑很简单。如果x能被y整除,则在x/y的结果上加0,如果y不能整除,则在x/y的结果上加1。
前言:
(int)math . ceil((double)x/y);//或者(int)math . ceil(x * 1.0/y);先把被除数转换成double类型,然后用Math.ceil()函数把计算结果向上取整,这个函数在网上经常看到。
00-1010 (x y-1)/y为什么这种方法能达到四舍五入的效果?为什么要把y-1加到x上?
为了便于理解,我们通过具体计算来说明。
1.对于可分的情况
x=9,y=3
(x (y-1))/y,x加上一个比y小的数,最后(x (y-1))/y=(x/y).y-1。
商是(x/y),余数是(y-1)。余数相当于两个数的除法结果的小数部分,会被截断,最后得到(x (y-1))/y`=(x/y)。
2.对于不可分的情况
x=11,y=3
11/3=3 .注射毒品
x(y-1)=(3 * 3 2)(3-1)=(3 * 3 2-1)3=(3 * 3 3)2-1
x (y - 1)/y=((3 * 3 3) 2 - 1 )/3=4
也就是x不能被y整除,余数必须在1和y-1之间。从中拿出1,给y-1,这样分红就增加一个y,然后商会就增加一个。从0到y-2的余数将被丢弃。
00-1010第一种方法:最简单,明确,推荐;
第二种方法:虽然常见,但是涉及转换类型太多,个人不推荐。
第三种方法:很巧妙,不太好理解,推荐。
方式一: 添加三目运算符逻辑代码
java向上取整函数Math.ceil()
百度Math.ceil()函数:“Math.ceil()是常见编程语言中的常见代码。ceil()方法执行向上舍入计算,它返回一个大于或等于函数参数且最接近它的整数。
使用Math.ceil(param):的例子
双倍红利=7;//dividend double divider=2;//除数双标志=0;int result 1=0;int result 2=0;//functional flag=math . ceil(divide/divide);//上舍入计算result 1=(int)flag;//将结果转换为int数据类型//判断公式:if((divide % divide)==0){ result 2=(int)divide/(int)divide;//将操作数转换为int data } else { result 2=((int)divide/(int)divide)1;//将操作数转换为int data } Object[]options={ success , cancellation };JooptionPane。Showoptiondialog (null,“函数单元求值=“结果1”;Evaluation= result2, warning ,jooptionpane.default _ option,jooptionpane.warning _ message,null,options,options[0]);结果就是你想要的:(函数公式等价于可除判断公式)
注意:
两个限制:判断公式,适用于整除;它的操作数是int(Integer)数据类型,否则得不到想要的效果。类型,如果你使用int(Integer)作为操作数(parameter),你需要特别注意:
双倍红利=7;//dividend double divider=2;//除数双标志=0;int result 1=0;int result 2=0;//函数式// (int) divide/(int) divide直接将计算结果转换为int类型,所以这里的结果是3//(int类型丢失精度,即小数点后的数字丢失,本例中3.5丢失0.5;//这涉及到高精度数转换成低精度数时精度的损失。//精度从低到高int双浮点)。// Math.ceil(3)函数执行,四舍五入,也是3 //感谢博主“ws458371436”指正。这个地方之前很混乱,但是感谢blogger的关心,避免误导其他朋友flag=math。Ceil ((int) divided。//向上取整计算int=Math.ceil(int),对int整数取整,没必要!result1=(int)标志;//将结果转换为int数据类型//判断公式:if((divide % divide)==0){ result 2=divide/divide;//保留双精度数据类型} else { result 2=(divide/divide)1;//保留双精度数据类型} Object[] options={success , cancellation };JooptionPane。Showoptiondialog (null,“函数单元求值=“结果1”;Evaluation= result2, warning ,jooptionpane.default _ option,jooptionpane.warning _ message,null,options,options[0]);测试结果:
总结:函数(接口)都有其适应范围和限制条件。正是这些条件划定了基本功能,有了准确的方向,得到了具体的结果。这也是智力。
这就是这篇关于Java中整数除法和舍入的文章。关于Java中整数除法和舍入的更多信息,请搜索以前关于流行IT的文章或继续浏览下面的相关文章。我希望你将来能支持流行它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。