百分比计算不起作用?

Gua*_*apo 3 c# .net-4.0 percentage

这是一个非常有趣的事情,不知道为什么会发生,但当我这样做:

(item.Count / query.Count) * 100
Run Code Online (Sandbox Code Playgroud)

它不会给我任何错误只是回复0和当我这样做:

(item.Count * 100) / query.Count
Run Code Online (Sandbox Code Playgroud)

它运作得很好,我在这里缺少什么?

我遇到的另一个问题是将其输出格式化为字符串:

double perc = (item.Count * 100) / query.Count;
MessageBox.Show(perc.ToString("P5"));
Run Code Online (Sandbox Code Playgroud)

不工作给了我一个巨大的总和,33,333.33或者33,000.00,我希望它看起来像这样33.33%,我尝试了几个变化,但由于某种原因它不会让我得到.33如果我设置括号加倍它得到我.00,如果我不这样做不给我.33

gil*_*ly3 12

不要乘以100,Percent Format Specifier将为您做到这一点.double当你执行分裂时,只需施展:

double perc = (double)item.Count / (double)query.Count;
MessageBox.Show(perc.ToString("P5"));
Run Code Online (Sandbox Code Playgroud)


小智 5

(item.Count / query.Count) * 100
Run Code Online (Sandbox Code Playgroud)

正在进行整数除法,因此(item.Count/query.Count)将始终求值为零.在分裂之前施放双打将解决这个问题.

对于格式问题,请尝试使用String.format

即. string result = string.Format("string = {0:0.0%}", perc);

可以在此处找到更多字符串格式化方法:http://www.dotnetperls.com/string-format