Konvertera valuta och liknande.....

ASP

27 svar · 606 visningar · startad av LearningASP

Medlem sedan okt. 2001127 inlägg
Trådstart#1

Jag har sökt runt på forumet och hittat ganska lite om konvertering, av den anledningen startar jag ett nytt ämne för jag förstod inte riktigt hur man skulle göra.

Frågor

1.Konvertera SEK <-> EUR

2 Konvertera HK <-> KW
1 Hk = 0.74570 Kw

Hur utformar man koderna för detta?

JAg har följande i ett formulär_

ett textfält för priset och ett för hk/kw antalet

och en dropdown meny där man väljer vad SEK eller EUR för priset och en för hk/kw antalet där man väljer hk eller kw

Tack på förhand

MVH, LearningASP

Medlem sedan dec. 19998 577 inlägg
#2

Exempel:

function HKtoKW(HK)
HKtoKW = HK * 0.74570
end function
Medlem sedan okt. 2001127 inlägg
#3

Tackar

* = gånger

e då / = delat med??

Medlem sedan dec. 19998 577 inlägg
#4

Exakt... ;)

Medlem sedan okt. 2001127 inlägg
#5

Kan du förklara lite hur en function fungerar.

Det bästa är väl att spara det pris och antal hk i databasen och sen förändrar man till de värdena man vill ha på presentationssidan?

function HKtoKW(HK)
HKtoKW = HK * 0.74570
end function

HKtoKW är det de som blir variabeln?

vad gör (HK) dvs det inom parantestecknen?

det är lite lättare att förstå och lära sig om man får en lite förklaring ;)

tack på förhand

Medlem sedan dec. 19998 577 inlägg
#6

Function: http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_14.asp#function

Du anropar och lägger det i en varibel (eller använder direkt) såhär, säg att vi viill konvertera 105 HK till KW:

variabel = HKtoKW(105)
Medlem sedan okt. 2001127 inlägg
#7

Bara för att se om jag fattar ett ex

'hämtar textfältets värde
strHK = Request.Form("FormHK")

function HKtoKW(strHK)
HKtoKW = HK * 0.74570
end function

'där man vill skriva ut funktionen
<%=HKtoKW%>

har jag fattat???

Kan inne hålla fel skrev det på en bensträkar paus i skolan ;)

Medlem sedan dec. 19998 577 inlägg
#8

Nej, du måste anropa funktionen med ett värde som argument:

function HKtoKW(strHK)
HKtoKW = HK * 0.74570
end function

'hämtar textfältets värde
strHK = Request.Form("FormHK")

'där man vill skriva ut funktionen
<%=HKtoKW(strHK)%>

Sedan måste strHK vara numersikt, så variabeln borde heta intHK. :)

Medlem sedan okt. 2001127 inlägg
#9

Konverteringen funkar utnärkt ;)

men om jag vill ha en if-sats, jag har nämligen en dropdown där man väljer antingen hk eller kw och ett text fält där man skriver hk.

textfältet heter FormEffekt
dropdownen heter FormHK

If Request.Form("FormHK")="hk" Then
	intEffekt = Request.Form("FormEffekt")
	function HKtoKW(intEffekt)
	HKtoKW = intEffekt * 0.74570
	end function
	
	Else
	intEffekt = Request.Form("FormEffekt")
	function KWtoHK(intEffekt)
	KWtoHK = intEffekt * 1.34102
	end function
	
	End If

så jag har nu så får båda funktionerna värden

<%=HKtoKW(intEffekt)%><br><br><%=KWtoHK(intEffekt)%>

nu blir det massa decimaler hur blir jag av med dom?

Finns det nåt sätt att avrunda?

Tack på förhand

Medlem sedan dec. 200012 464 inlägg
#10

Ja.

function HKtoKW(strHK)
HKtoKW = round(HK * 0.74570,4)
end function

t.ex.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctround.asp

Medlem sedan feb. 20012 412 inlägg
#11

Hej!

Som LarsG skrev kan du använda ROUND för att avrunda. Men du kan också välja antal decimaler med formatnumber tex:

intVariabel = formatnumber(intVariabel,3)

ger 3 decimaler. Byt siffran till höger mot antalet decimaler du vill ha. Kan vara bra om du vill låta alla decimaler vara kvar i funktionen och precentera olika antal på olika ställen.

mvh Jörgen :)

Medlem sedan okt. 2001127 inlägg
#12

Men varför vill min If-sats inte fungera då???

Medlem sedan feb. 20012 412 inlägg
#13

Hej!

Prova:

If Cstr(Request.Form("FormHK")) = "hk" Then

mvh Jörgen :)

Medlem sedan okt. 2001127 inlägg
#14

Finns det något sätt att få . tex om jag skriver 100.000 så i översättningen till EUR så blir det 10395,01 vill gärna ha 10.395,01 går detta att lös på något sätt????

Medlem sedan feb. 20012 412 inlägg
#15

Hej!

Vad får du om du skriver:

<%=KWtoHK(formatCurrency("intEffekt"),-1)%>

Prova labba mellan -1, 0 och -2.

mvh Jörgen :)

Medlem sedan okt. 2001127 inlägg
#16

jag har denna kod

hur skall jag "baka" in din kod snutt i detta??

function SEKtoEUR(intPris)
	SEKtoEUR = round(intPris / currEUR,0)
	end function
	
	function EURtoSEK(intPris)
	EURtoSEK = round(intPris * currSEK,0)
	end function

så här ser present. koden ut

If Cstr(Request.Form("FormPris")) = "" Then
	Response.Write""
	ElseIf Cstr(Request.Form("FormValuta")) = "SEK" Then 
	Response.Write""&strPris&" SEK ("& SEKtoEUR(intPris) &" EUR)" 
	ElseIf Cstr(Request.Form("FormValuta")) = "EUR" Then 
	Response.Write""&EURtoSEK(intPris)&" SEK ("& strPris &" EUR)"
	End if%>

jag ville inte ha decimaler ändå ;)

Medlem sedan okt. 2001127 inlägg
#17

Jag måste fråga om detta är rätt (sitter inte hemma så att jag kan testa :()

function SEKtoEUR(intPris)
SEKtoEUR = formatCurrency(intPris / currEUR,0, -1)
end function

function EURtoSEK(intPris)
EURtoSEK = formatCurrency(intPris * currSEK,0, -1)
end function

jag läste lite om formatCurrency och det blir comma men går det att få punkt?

men går det inte att lösa så e det inte mycket att göra

ex:
källa: http://www.devguru.com/Technologies/vbscript/quickref/formatcurrency.html

Code:
<% =FormatCurrency(31567, 2) %> 
 
Output:
$31,567.00 

vill ha:

31.567

nu var jag väldigt jobbig ;)

Medlem sedan dec. 19998 577 inlägg
#18

Borde fungera om du ändrar till svensk teckenuppsättning:

Session.LCID = 1053
Medlem sedan okt. 2001127 inlägg
#19

ok, danke skall prova så fort jag kommer hem ;)

Medlem sedan okt. 2001127 inlägg
#20

går det att bli av med sek som blir med formatCurrency?

265 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)