java向上取整函数Math.ceil()
百度Math.ceil()函数:“Math.ceil()是常见编程语言中的常用代码,ceil() 方法执行的是向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。“
Math.ceil(param)使用实例:
double dividend = 7; // 被除数
double divisor = 2; // 除数
double flag = 0;
int result1 = 0;
int result2 = 0;
// 函数式
flag = Math.ceil(dividend / divisor); //向上取整计算
result1 = (int)flag; //将结果转化为int数据类型
// 判断式:整除法
if ((dividend % divisor) == 0) {
result2 = (int)dividend / (int)divisor; // 将操作数转化为int型数据
} else {
result2 = ((int)dividend / (int)divisor) + 1; // 将操作数转化为int型数据
}
Object[] options = { "成功", "取消" };
JOptionPane.showOptionDialog(null, "函数ceil求值=" + result1 + "; 判断求值=" +result2,
"Warning",JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE,null, options, options[0]);
结果为所要的:(函数式与整除判断式等效)
注意:
两个限制:判断式,适用于整除;其操作数为int(Integer)数据类型,否则,得不到想要的效果。函数式,若使用int(Integer)作为操作数(参数),需要特别注意:
double dividend = 7; // 被除数
double divisor = 2; // 除数
double flag = 0;
int result1 = 0;
int result2 = 0;
// 函数式
// ① (int)dividend / (int)divisor 将计算结果直接转换为int型,因此这里的结果为3
//(int 类型丢失精度,即小数点之后的数丢失,本例的 3.5 丢失了0.5;
// 这里涉及 高精度数 向 低精度数 转化时,会丢失精度。
// 精度从低到高 int < double < float).
// ② Math.ceil(3)函数执行,向上取整,也是3
// 感谢 博友“ws458371436” 的纠正,之前这个地方是糊涂的,还好有博友的细心,避免再误导其他朋友
flag = Math.ceil((int)dividend / (int)divisor); // 向上取整计算int = Math.ceil(int),对int整数取整,纯属多余!
result1 = (int)flag; //将结果转化为int数据类型
// 判断式:整除法
if ((dividend % divisor) == 0) {
result2 = dividend / divisor; // 保持double型数据类型
} else {
result2 = (dividend / divisor) + 1; // 保持double型数据类型
}
Object[] options = { "成功", "取消" };
JOptionPane.showOptionDialog(null, "函数ceil求值=" + result1 + "; 判断求值=" +result2,
"Warning",JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE,null, options, options[0]);
测试结果:
总结:函数(接口),都具有它的适应范围和限制条件,正是这些条件,标定了基本功能,有准确的指向,得出特定效果。这也是智能。
今天的文章java向上取整函数和向下取整函数_取整函数怎么取整「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/78360.html