En sträng är inte ett tal
"4,5" + "8" bli "4,58"
4,5+8 bli 12,5
konvertera dina strängar till ett tal läs om Convert to Double: http://msdn.microsoft.com/en-us/library/ftekwwt0(VS.85).aspx
4 svar · 530 visningar · startad av Bosse168
Total brainfreeze igen...
hämtar ut 2 värden ur en MySQL db som är av typen VarChar och försöker enkelt och smäck plusa ihop dessa.
strTotaltTimmar=Rs3(0)+Rs3(1)
Rs3(0) = värdet 4,5
Rs3(1) = värdet 8
Varför vid Odins skägg blir värdet på strTotaltTimmar = 4,58
En sträng är inte ett tal
"4,5" + "8" bli "4,58"
4,5+8 bli 12,5
konvertera dina strängar till ett tal läs om Convert to Double: http://msdn.microsoft.com/en-us/library/ftekwwt0(VS.85).aspx
Nu är det förvisso en smiley med i frågan, men jag svarar ändå:
När man hanterar strängar (VarChar betyder att du har valt att representera kolumnens värde som strängar) så gäller att plustecknet "+" fungerar som sträng-konkatenerare (svenska, någon?) Dvs du kan på detta sätt enkelt slå ihop strängar. På samma sätt blir alltså "sol" + "katt" = "solkatt". Plustecknet har alltså olika funktion beroende på vad för typ du vill plussa ihop. Kallas också "Overloaded function".
Om du av olika skäl vill ha kvar VarChar-formatet i kolumnen så får du själv omvandla din Rs3-kolumn till tal, det gör du enkelt med följande rader:
If Trim(myVar) <> vbNullString And IsNumeric (myVar) Then
myVarSng = CSng(myVar)
End If
Bäst hade ju varit att köra rätt datatyps fält på ditt innehåll. Att köra en varchar på något som verkar alltid innehålla något som inte är av den datatypen känns bara omständigt.