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 + "%");
}

最後の値が100%を返すことを除いて、値は常に0%を返します。それが私の問題です。質問をすばやく見つけたいと思っています:)

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 に答える