/ 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
Hvordan kan jeg løse dette variant til str~
Fra : Nenad


Dato : 12-03-04 10:06

Hejsa

Jeg har et lille problem i et et program.
Jeg har kogt det hele ned til nogle få linier:

Dim var As Variant
Dim str As String

var = 2074.99 '2074.99

var = Abs(var) '2074.99
var = var * 10 ^ 2 '207499

str = Int(var) '207498

Jeg mister et øre i mit beløb.
Jeg kan gætte mig til at min variant tror at det er en float eller
decimal at den få ind.

Er min eneste løsning at lave dette:
str = Int(var + 0,5)

Jeg vil helst ikke ændre om på mine variabel typer for at ikke
ødelægge mit interface.

På forhånd tak
Nenad

 
 
Harald Staff (12-03-2004)
Kommentar
Fra : Harald Staff


Dato : 12-03-04 11:16

Hei Nenad

Int er ingen god måte å konvertere til en streng. Prøv enten

str = CStr(var)

eller (om du er bekymret for mulige desimaler)

str = CStr(CLng(var))

Jeg vil tro du har løpt på et presisjonsproblem som oppstår i desimale og
binære tall. Les
http://www.cpearson.com/excel/rounding.htm
for litt teori.

Om var alltid er et tall, og det bør det være av hensyn til de påfølgende
operasjoner her, så deklarer heller som Double enn som Variant. Variant er
bare en pointer til et minne av ukjent størrelse og type.
--
HTH. Beste hilsen Harald
Followup to newsgroup only please

"Nenad" <nenad@dragic.com> skrev i melding
news:d89574e7.0403120106.461c539c@posting.google.com...
> Hejsa
>
> Jeg har et lille problem i et et program.
> Jeg har kogt det hele ned til nogle få linier:
>
> Dim var As Variant
> Dim str As String
>
> var = 2074.99 '2074.99
>
> var = Abs(var) '2074.99
> var = var * 10 ^ 2 '207499
>
> str = Int(var) '207498
>
> Jeg mister et øre i mit beløb.
> Jeg kan gætte mig til at min variant tror at det er en float eller
> decimal at den få ind.
>
> Er min eneste løsning at lave dette:
> str = Int(var + 0,5)
>
> Jeg vil helst ikke ændre om på mine variabel typer for at ikke
> ødelægge mit interface.
>
> På forhånd tak
> Nenad



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408176
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste