C言語なら、俺に聞け! <11>
■ このスレッドは過去ログ倉庫に格納されています
0316デフォルトの名無しさん
NGNG使ってはいけないという話をききます。
こんど小数部が二桁の計算を行うので、どのくらい
誤差が出るかとおもい、ためしにVC++で下のような
処理を書いて試してみました。
しかし、どうも誤差はでないようです。
扱う値が小さい場合は、誤差はでないのでしょうか?
{
srand(time(0));
const int loop_num = 10000;
int total = 0;
double real_total = 0;
for (int i = 0; i < loop_num; i++) {
int n1 = rand() % 1000; // 整数部
int n2 = rand() % 100; // 小数部
total += n1 * 100 + n2; // 整数計算
double d = (double)n1 + (double)n2 / 100; // 実数計算
real_total += d;
}
TRACE("%f\n", (double)total/loop_num/100); // 整数での計算結果
TRACE("%f\n", real_total/loop_num); // 実数での計算結果
}
■ このスレッドは過去ログ倉庫に格納されています