Talsammenlægnings fejl
Ja, jeg har lavet noget hvor man skal kunne give forskellige karakterer til nogle ting.Og karaktererne består af:
0 - 0,5 - 1 - 1,5 - 2 - 2,5 - 3 - 3,5 - 4 - 4,5 - 5
Disse tal kan man vælge i en scrolldownbox.
Så bruger jeg denne kode til at lægge de forskellige tal sammen, og finde gennemsnittet af tallene:
kodeeksempel...
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("anmeldelser.mdb")
Set rs2 = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT SUM(Karakter) As IaltHoved FROM Hoved_anmeldelser WHERE ID = " & rs("ID") & " AND Godkendt='Ja' "
rs2.Open strSQL, myConn, 1, 3
Set rs3 = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT SUM(Karakter) As Ialt FROM Anmeldelser WHERE AnmeldelsesID = " & rs("ID") & " AND Godkendt='Ja' "
rs3.Open strSQL, myConn, 1, 3
Set rs4 = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM Hoved_anmeldelser WHERE ID = " & rs("ID") & " AND Godkendt='Ja' "
rs4.Open strSQL, myConn, 1, 3
Set rs5 = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM Anmeldelser WHERE AnmeldelsesID = " & rs("ID") & " AND Godkendt='Ja' "
rs5.Open strSQL, myConn, 1, 3
%>
<% If rs5.RecordCount = "0" Then
Karakterer = rs2("IaltHoved") / rs4.RecordCount
Else
Karakterer = (rs3("Ialt") + rs2("IaltHoved")) / (rs4.RecordCount + rs5.RecordCount)
End If %>
Håber I er med så langt.
Samtidig har jeg så nogle billeder som har samme navn som de karakterer man kan give.
Og for at alt det kommer til at passe har jeg så denne kode, som runder op til de tal de nu skal:
kodeeksempel...
<% If Karakterer < "0,25" Then
Gennemsnit = "0"
ElseIf Karakterer = "0,5" Then
Gennemsnit = "0,5"
ElseIf Karakterer < "0,75" Then
Gennemsnit = "0,5"
ElseIf Karakterer < "1,25" Then
Gennemsnit = "1"
ElseIf Karakterer = "1,5" Then
Gennemsnit = "1,5"
ElseIf Karakterer < "1,75" Then
Gennemsnit = "1,5"
ElseIf Karakterer < "2,25" Then
Gennemsnit = "2"
ElseIf Karakterer = "2,5" Then
Gennemsnit = "2,5"
ElseIf Karakterer < "2,75" Then
Gennemsnit = "2,5"
ElseIf Karakterer < "3,25" Then
Gennemsnit = "3"
ElseIf Karakterer = "3,5" Then
Gennemsnit = "3,5"
ElseIf Karakterer < "3,75" Then
Gennemsnit = "3,5"
ElseIf Karakterer < "4,25" Then
Gennemsnit = "4"
ElseIf Karakterer = "4,5" Then
Gennemsnit = "4,5"
ElseIf Karakterer < "4,75" Then
Gennemsnit = "4,5"
ElseIf Karakterer < "5,25" Then
Gennemsnit = "5"
End If
%>
Nå, men hvis der nu, som der skal, laves en "Hoved anmeldelse" som man så bagefter kan tilføje anmeldelser til, og man f.eks. vælger karakteren 4,5.
Så tager den jo det tal, og dividerer med så mange anmeldelser der nu er, altså i dette tilfælde 1, hvilket jo vil give 4,5.
Problemet er så bare at den IKKE viser 4,5, men den i stedet runder op eller ned (Kan ikke huske det) til 4 eller 5, selvom den jo i princippet skal være 4,5.
Og det er jo forkert.
Og det er ligemeget om jeg tilføjer 10 med samme karakter, det bliver stadig ikke et halvt tal, MEDMINDRE jeg har to forskellige karakterer, f.eks. 2 og 3 hvilket jo giver 2,5 i gennemsnit, så udskriver den nemlig 2,5.
Og jeg fatter det simpelthen ikke...
Nogle der kan se hvad problemet kunne være ?
Håber egentlig også I forstår hvad jeg mener, ellers må i jo spørge
