双精度小数运算后取整始终为零?求解

lshfong 2010-04-15 08:19:08
pro= Math.Ceiling(Convert.ToDouble(9/ 71)*100);
结果怎么始终为零?搞不懂了
...全文
167 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsuswy 2010-04-15
  • 打赏
  • 举报
回复
9/ 71 已经=0 了,再 ToDouble没用到了。
应该先 ToDouble(9),再去 /71。
Snowdust 2010-04-15
  • 打赏
  • 举报
回复
9/71由于是整数除法,所以值为0,后面的当然也是0了,
double pro = Math.Ceiling(9.0 / 71 * 100);
风之影子 2010-04-15
  • 打赏
  • 举报
回复
Math.Round
whb147 2010-04-15
  • 打赏
  • 举报
回复
pro= Math.Ceiling(Convert.ToDouble(9/ 71*1.00)*100);
zming 2010-04-15
  • 打赏
  • 举报
回复

pro= Math.Ceiling(Convert.ToDouble((double)9/ 71)*100);





pro= Math.Ceiling(Convert.ToDouble(9/(double)71)*100);





pro= Math.Ceiling(Convert.ToDouble(9.0f/71)*100);


数据类型转换问题

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧