1

大家好,我的控制台应用程序有一个小问题我有一个文本文件有 19862 行

String[] lines= File.ReadAllLines("C:\\Users\\ThElitEyeS\\Desktop\\PHP\\name\\names.txt");
int c = lines.Length;
int i = 1;
foreach (String line in lines) {
    long f = ((i++ / c) * 100);
    Console.WriteLine(f + "%");
}

该值始终返回 0%,除了最后一个返回 100%,这是我的问题,我希望快速找到问题 :)

4

2 回答 2

4

你正在做一个整数除法,这将被四舍五入。

例子:

i = 1 and c= 100
result is 0.01  -> rounded to 0
0 * 100 = 0

而是尝试

long f = ((i++ / (double) c) * 100);

强制浮点除法。

于 2012-07-29T07:01:28.773 回答
1

double您已经有了一个可行的答案,但是当整数除法(不四舍五入,但截断)就足够了时,我不会在这里使用:

long f = i++ * 100 / c;
于 2012-07-29T07:30:27.543 回答