Hej! Utan att direkt tänka efter skulle jag nog göra så här för att få fram vilket tecken som används: Function WhatIsDecimal() I VB syntax är det alltid . som decimal separator. Varför behöver du vad som är decimaltecken? För att jag ska läsa från en textfil med priser där en punkt ibland anges som decimaltecken. Så här: För att spara decimaltat till databasen så använder en parameterfråga. Decimaltecken
Går det på något sätt i asp att få reda på de Regionala inställningarna för vilket tecken som används som decimaltecken?
Tack på förhand!
mvh Per LjungSv: Decimaltecken
<%=Mid(cStr(1/2),2,1)%>
<b>// EDIT //</b> (efter att ha sett Jonas Bomans funktion nedan...)
<%
Function WhatIsDecimal()
If Mid(cStr(1/2),2,1)="," Then
WhatIsDecimal = "komma"
Else
WhatIsDecimal = "punkt"
End If
End Function
%>
<%=WhatIsDecimal()%>
<b>// END EDIT //</b>
...annars kan du ju få fram locale ID så här:
<%=Session.LCID%>
<b>// EDIT //</b>
...eller sätta locale ID så här:
<% Session.LCID = 1053 ' Svenska (bl.a. komma som decimalavgränsare) %>
...eller...
<%
Dim lcid
lcid = Session.LCID ' Spara undan orginal LCID
Session.LCID = 1053 ' Byt till Svenska
'
' Gör något "på svenska"
'
Session.LCID = lcid ' "Ställ tillbaka" orginal LCID
%>
<b>// END EDIT //</b>
Lista på samtliga LCID: http://www.microsoft.com/globaldev/reference/lcid-all.mspx
Sv: Decimaltecken
Dim tempstr
If IsNumeric(1,2)=True Then tempstr="komma"
If IsNumeric(1.2)=True Then tempstr="punkt"
WhatIsDecimal=tempstr
End Function
Response.Write WhatIsDecimalSv:Decimaltecken
Eftersom IsNumeric bara tar ett argument så har du ett syntaxfel i din kod.Sv: Decimaltecken
(Bara nyfiken, har svårt att se hur det kan vara lösningen på ett problem)Sv:Decimaltecken
Jag ska sedan spara priserna i en databas och om jag då hade använt punkt som decimaltecken hade databasen tolkat det som en tusentalsavgränsare.
// PerSv: Decimaltecken
<%
Function strToNr(str) ' As Long
If Mid(cStr(1/2),2,1)="," Then
' komma, byt ut punkt till komma
strToNr = cLng(Replace(str,".",","))
Else
' punkt, byt ut komma till punkt
strToNr = cLng(Replace(str,",","."))
End If
End Function
Response.Write(strToNr("10.50"))
Response.Write(strToNr("10,50"))
%>
Sv: Decimaltecken
Se mitt andra inlägg: [enkelt citattecken]