Jag har en databas med kolumnen pris Jag hade använt mig av FormatNumber() Jo jag har testat det också men folket jag gör det till vill inte ha några decimaler alls vid hela kr, så det är inte förhandlingsbart tyvärr Vilken datatyp har du på ditt fält? Du bör inte under några omständigheter lagra tal som text. Lagra det som tal av typen Decimal eller double. Eller i Access som Currency. Just nu är det varchar och det är inget jag kan göra nåt åt, det är inte jag som gjort databasen, jag bara hämtar ut lite information ur den. <code></code> ok, jag tittar på det, men det är ingen som kommer mata in tal med olika decimalseparator, det är samma överallt hmm, får felmeddelandet <code></code> Jag är väl rätt ny på området funktioner om jag ska vara ärlig, har inte använt det speciellt mycket.Formatering av siffervärden
I den är det lite blandad konfekt. På vissa står det 11,00 i pris och på vissa står det
7,5 sen kan det tänkas att det står 12,000 på nån. Detta motsvaras då av 11 kr, 7,50 kr och 12 kr.
Jag vill att på de som har hela kr i pris men ändå har decimaler t ex 11,00 ska det bara stå 11 kr när jag skriver ut det och på de som bara har en decimal när det är ören t ex 7,5 ska det bli 7,50 när jag skriver ut det.
Hur kan jag lösa detta?
Tacksam för alla svar!Sv: Formatering av siffervärden
Men den är inte så smart så den kan se om du använder decimaler eller ej, utan kommer att formatera alla tal till samma format.
Typ:
<code>
Dim dTal = 30,10
Dim dTal2 = 40
Dim dTal3 = 35,1
response.write formatNumber(dTal,2)
response.write formatNumber(dTal2,2)
response.write formatNumber(dTal3,2)
</code>
nu kommer alla tal få 2 decimaler alltså:
30,10
40,00
35,10
- MSv: Formatering av siffervärden
Sv: Formatering av siffervärden
Sv: Formatering av siffervärden
Sv: Formatering av siffervärden
Detta kanske kan vara till hjälp:
<code>
Function MyFormat(Value)
Dim dblValue
Dim lngValue
If IsNumeric(Value) Then
dblValue = CDbl(Value)
lngValue = CLng(Value)
If dblValue = lngValue Then
MyFormat = lngValue & " kr"
Else
MyFormat = FormatNumber(dblValue, 2) & " kr"
End If
ElseIf Len(Value) Then
MyFormat = MyFormat(Val(Value))
End If
End Function</code>
Om man lagrar tal som text kan det ge problem om folk matar in värden med olika decimal separator. Sv: Formatering av siffervärden
Sv: Formatering av siffervärden
Wrong number of arguments or invalid property assignment: 'MyFormat'
Ska jag byta ut alla value mot t ex 14,5 för att testa?Sv: Formatering av siffervärden
Vet du inte hur man använder en funktion?
Du skriver t.ex.:
<code>
Dim varTemp
varTemp = "14,5"
Response.Write MyFormat(varTemp)
</code>Sv: Formatering av siffervärden
Får samma fel ändå, dett borde väl vara rätt?
<code>
<%
Function MyFormat(Value)
Dim dblValue
Dim lngValue
If IsNumeric(Value) Then
dblValue = CDbl(Value)
lngValue = CLng(Value)
If dblValue = lngValue Then
MyFormat = lngValue & " kr"
Else
MyFormat = FormatNumber(dblValue, 2) & " kr"
End If
ElseIf Len(Value) Then
MyFormat = MyFormat(Val(Value))
End If
End Function
Dim varTemp
varTemp = "14,5"
Response.Write MyFormat(varTemp)
%>
</code>