投稿者 もも  (学生) 投稿日時 2011/11/19 10:02:24
成績をつけるプログラムを作成しています。
合計点数と満点をで割合を求め、FormatPercent関数でパーセントに変換させた後Select Caseでそれぞれ成績を振り分けるのですが、どうも思うように行きません。
まずコードを記載します。
      Dim Grade As Decimal
            Dim Total As Integer
            Dim Totalpossiblepoint As Integer = 800
            Dim FinalGrade As String
            Grade = (Total / Totalpossiblepoint)
Dim percentage As String
            percentage = FormatPercent(Grade, 0)
            MsgBox(percentage)←これはただの確認用です。

           ' 90%以上ならA、80-89%ならB、70-79%ならC、60-69%ならDに
            Select Case percentage
                Case Is >= 90
                    FinalGrade = "A"
                    PassAtoC()
                Case 80 To 89
                    FinalGrade = "B"
                    PassAtoC()
                Case 70 To 79
                    FinalGrade = "C"
                    PassAtoC()
                Case 60 To 69
                    FinalGrade = "D"
                    PassD()
                Case Else
                    FinalGrade = "F"
                    Failed()
            End Select

点数の割合が各成績の間に位置すると、「その他」としてF表示になるのです。
例えば得点が715点、満点が800点だとすると、89.37%になり、整数に四捨五入すると89%になりますが、Fが表示されます。これが88%ならば普通にBになるのですが。
いろいろ試したところ、
100%=F
99%=A
90%=A
89%=F
80%=B
79%=F
となりました。

80 To 89は80<>89を意味しているのかと思いましたが、そうでもない? それともこれは80>=, <89となっているのでしょうか?
どうしてこうなっているのか、どうすればよいのか教えてください。