質問失礼します。出席管理みたいなものを作っているのですが下記のように13回ループさせて出席した場合はカウントが入りそこから$percent = $count / 13.0 * 100;という計算方法で出席率を出しているのです。
一人目は正常に出てくるのですが、二人目以降から計算がおかしくなってしまいます。
my $gs,$name,$s[1],$s[2],$s[3],$s[4],$s[5],$s[6],$s[7],$s[8],$s[9],$s[10],$s[11],$s[12],$s[13],$sr;
open(READ,"2.csv"); #ファイルを読み込む
@lines = <READ>;
close(READ); #ファイルを閉じる
foreach $line ( @lines ){ # @s に 添え字の1から13までに、出席の状態が入る。
($gs,$name,$s[1],$s[2],$s[3],$s[4],$s[5],$s[6],$s[7],$s[8],$s[9],$s[10],$s[11],$s[12],$s[13],$sr)=split(/,/,$line);
print "<tr><td>$gs</td><td>$name</td>";
for($i=1;$i<=13;$i++){
$str = "$gs" . "_" . "$i";
if( $s[$i] eq "1"){
print "<td><input type=\"checkbox\" name=\"$str\" value=\"1\" checked></td>\n";
$count ++;
}else{
print "<td><input type=\"checkbox\" name=\"$str\" value=\"1\"></td>\n";
}
}
$percent = $count / 13.0 * 100;
$percent_2 = sprintf "%3.0f",$percent;
print "<td>$percent_2%</td></tr>";
}
6人目になると100%が上限なのですが300%などいってしまいます。説明が下手で申し訳ないですが、ご助言いただけないでしょうか?
お礼
迅速な回答ありがとうございます。解決しました。