/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Kommatal
Fra : Jette Nielsen


Dato : 31-12-00 12:10

Hvordan tager man højde for at vi benytter komma som adskiller mellem
eksempelvis kroner og ører og ikke punktum?

--
Jette Nielsen



 
 
Jette Nielsen (01-01-2001)
Kommentar
Fra : Jette Nielsen


Dato : 01-01-01 10:36

Jeg har løst problemet ... men sidder nu med et andet problem

Selv om ALLE mine variabler er erklæret Single (lige bortset fra "besked",
men den benyttes jo ikke i beregningerne) af/oprundes de helt. Et resultat
der skulle give 1.500,48 vises som 1.500,00 ... hvad gør jeg forkert?

Her er koden:
(brugeren skal indtaste sin primo og ultimo el-måleraflæsning. Derefter
udregnes det totale kWh forbrug og en pris beregnes med fratræk af indbetalt
acconto)
*************************

Private Sub cmdBeregn_Click()
Dim primo, ultimo, total As Single
Dim diff As Single
Dim besked As Integer
Dim pris As Single
Dim abonnement As Single
Dim acconto As Single

'Beregning af kWh forbrug
primo = Val(txtPrimo.Text)
ultimo = Val(txtUltimo.Text)

If primo < ultimo Then
total = ultimo - primo
txtKWH.Text = total

Else
If primo >= ultimo Then
diff = 1000000 - primo
total = diff + ultimo
txtKWH.Text = total

End If
End If

If total > 8000 Then
besked = MsgBox("Dit forbrug overstiger 8000 kWh!", vbCritical,
"Advarsel")
End If

'Beregning af kroner
pris = 0.97
abonnement = 450
acconto = Val(txtAcconto.Text)
Dim totalpris As Single
totalpris = (total * pris) + abonnement - acconto
txtPris.Text = Format$(totalpris, "#,##0.00")


End Sub

**********************************

Til txtAcconto og txtPris har jeg sat proberti'en DataFormat til Currency i
danske kroner. Jeg synes dog ikke den har nogen effekt. Jeg er stadig nødt
til at formatere txtPris vha. Format$ i koden ... har jeg misforstået brugen
af DataFormat, hvad er meningen med den?


--
Jette Nielsen




Tomas Christiansen (01-01-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 01-01-01 22:27

Jette Nielsen skrev:
> Jeg har løst problemet ... men sidder nu med et andet problem

Det tvivler jeg nu på. Se længere fremme.

> Selv om ALLE mine variabler er erklæret Single (lige bortset fra "besked",

Det er IKKE korrekt!
Dine variabler primo og ultimo er erklæret af typen Variant jævnfør linien:

> Dim primo, ultimo, total As Single

> Et resultat der skulle give 1.500,48 vises som 1.500,00

Prøv at lægge mærke til hvad du gør med værdien i felterne txtPrimo.Text og
txtUltimo.Text:

> primo = Val(txtPrimo.Text)
> ultimo = Val(txtUltimo.Text)
....
> acconto = Val(txtAcconto.Text)

Du benytter funktionen Val, som IKKE tager højde for brugerens regionale
opsætning af f.eks. tegn for decimalskilletegn (på dansk: komma).

Havde du i stedet erklæret primo og ultimo korrekt, og benyttet følgende
metode:

primo = CSng(txtPrimo.Text)
ultimo = CSng(txtUltimo.Text)
....
acconto = CSng(txtAcconto.Text)

eller blot:

primo = txtPrimo.Text
ultimo = txtUltimo.Text
....
acconto = txtAcconto.Text

burde det virke.

Se selv noten under hjælpen til Val-funktionen:

"Note The Val function recognizes only the period (.) as a valid decimal
separator. When different decimal separators are used, as in international
applications, use CDbl instead to convert a string to a number."

> Til txtAcconto og txtPris har jeg sat proberti'en DataFormat til Currency
i
> danske kroner. Jeg synes dog ikke den har nogen effekt....
> ... har jeg misforstået brugen af DataFormat, hvad er meningen med den?

Bruges kun når kontrollen er bundet til en database.

En sidste lille ting jeg faldt over. Du benytter følgende if-sætning:

> If primo >= ultimo Then

et sted hvor du i forvejen VED, at den må være sand, hvorved den er
unødvendig.
Hvis jeg var dig, ville jeg fjerne den, idet den blot forvirrer unødigt.

-------
Tomas



Jette Nielsen (06-01-2001)
Kommentar
Fra : Jette Nielsen


Dato : 06-01-01 18:52

Hej Tomas

Tusind tak for dit svar vedrørende komma, variabler mm. Du fik lige de sidst
brikker til at falde på plads

--
Jette Nielsen




Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste