两个Int类型相除为什么得到的为零了??求救

likf521 2010-01-16 02:30:47
int membernum1 = int.Parse(WarClassnum.ToString());
//membernum1=11;
int membernum2 = WebSite.Site.DAL.IntegralCodeDAL.Count();
//menbernum2=20;
float a = ((membernum1/membernum2) * 10000)/100;
但是不知道为什么我得到的a总是为0··
求解·

我本来代码含义是,传个warclassnum为数据库存储数量,
...全文
2651 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
since_net_lyc 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ronaltn 的回复:]
不要用int,直接定义为浮点数。

因为整形数除以整型数的结果还是整型,整型的话就自然为0了,然后再怎么转换还是为0。
[/Quote]
up!
fxc163 2010-01-16
  • 打赏
  • 举报
回复
可以试试double或float型的
likf521 2010-01-16
  • 打赏
  • 举报
回复
恩··谢谢了啊·我头疼··以前都没注意int自动转化··
Justin-Liu 2010-01-16
  • 打赏
  • 举报
回复
不够1就是0 别用int型
punan7005 2010-01-16
  • 打赏
  • 举报
回复
float类型
ronaltn 2010-01-16
  • 打赏
  • 举报
回复
不要用int,直接定义为浮点数。

因为整形数除以整型数的结果还是整型,整型的话就自然为0了,然后再怎么转换还是为0。
symbol441 2010-01-16
  • 打赏
  • 举报
回复

float a = (((float)membernum1 / (float)membernum2) * 10000) / 100;
-过客- 2010-01-16
  • 打赏
  • 举报
回复
结果与除数和被除数的类型有关

float a = (((float)membernum1/membernum2) * 10000)/100; 
xuqianghit 2010-01-16
  • 打赏
  • 举报
回复
两个int类型相除的话,会自动将结果阶段为整形。需要先强制类型转换。
波导终结者 2010-01-16
  • 打赏
  • 举报
回复
int相除只留整数,小数死光,所以商不足1的时候,就剩0了
你要先把int转成double、float或者decimal
TalesTen 2010-01-16
  • 打赏
  • 举报
回复
分布监视membernum1/membernum2
再((membernum1/membernum2) * 10000
看看是怎么回事

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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