ALearner

  • 首页
  • Python
  • Linux
  • Java
  • 工具
  • 前端
  • 算法
  • My World
HelloStranger
每个人都是初学者
  1. 首页
  2. Java
  3. 正文

Java关于向上取整 Math.ceil() 结果为0的问题

2017年11月24日 8094点热度 1人点赞 0条评论
[title]例子[/title] 我项目中有一句代码:

 int circleNum = (int)Math.ceil(faceppFaceUserList.size()/950);

然而,在我调试的时候,结果总是比预想结果少1

甩个例子 :

double a = 3/950;
double b = Math.ceil(a);
System.out.println(a);
System.out.println(b);

上面例子运行的结果 :

0.0
0.0
[title]原因[/title] 在"3/950"中,
数字"3"是int类型
数字"950"是int类型
所以算式"3/950"也是一个int类型,
所以小数部分会被省略去掉,结果为0
变量b相当于是int类型强制转成double类型

[title]正确方式[/title]

double a = (double)3/(double)950;

double b = Math.ceil(a);

System.out.println(a);

System.out.println(b);

 

相关

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2017年11月24日

iquantumer

你现在的态度决定你十年后是人物还是废物。

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 alearner.top. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备16024047号