public float InfectionPercent(){ return (infected + zombIEs) * 100 / population;}
价值观是:
int infected = 20196093int zombIEs = 1978138int population = 32608521
返回的值是-63
将100改为100f可以解决这个问题.
为什么该 *** 作返回-63而不是63?
解决方法20196093 + 1978138 = 2217423122174231 * 100 = 2 217 423 100
但是,Int.MaxValue是2 147 483 647,所以你破坏了最大值.
通过将100设置为浮点数,您将强制浮点乘法.有效浮点值介于-3.4×10 ^ 38和3.4×10 ^ 38之间(这是340十亿分之一,即非常多),所以它确实是正确的.
总结以上是内存溢出为你收集整理的C# – Int *** 作莫名其妙地返回负值全部内容,希望文章能够帮你解决C# – Int *** 作莫名其妙地返回负值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)