hinta = Val(Text3.Text) * Val(Text9.Text)
text3.text = 3 ja text9.text = 1.5
koodi tulostaa 4 vaikka se nyt kuitenkin on 4,5
koodi on tälläisessä yhteydessä:
hinta = Val(Text3.Text) * Val(Text9.Text) List2.AddItem taulu(0) & "|" & hinta & "|" & Text3.Text
mutta kertomisen kahdella se kyllä osaa :/
Onko hinta määritelty? Tietotyyppi?
Veikkaukseni: hinta on Integer tai Long
long... eli pitäisi olla integer? joo nyt pitäs kyl jo alkaa herää...
Edit:
muutin integeriks mut silti ei toimi
Long = Pitkä kokonaisluku
Integer = Normaalipituinen kokonaisluku
Näistä voinet päätellä mihin desimaalit katoavat.
*on tässäki koodaaja*...
Rahallisille arvoille kannattaa käyttää Currencya, joka sallii neljä desimaalia. Se on 64-bit kokonaisluku, mutta sen pilkun paikkaa on siirretty neljä paikkaa vasemmalle.
Tuskin desimaalit tulevat näkyviin vaikka käyttäisit currencyä tai doublea sillä Val-funktio kadottaa desimaalit jos erottimena on pilkku. Varmaan viides kerta kun kerron sen täällä putkassa.
Edit: Näköjään erottimen oli kuitenkin piste.
Niin, jos ne kuitenkin olisi pilkut, niin miten olisi mahdollista että 3*1=4 ?
Niin, en huomannut ensin että erottimena on tosiaan piste. Silloin koodi vaatii tuon Val-funktion. Jos kuitenkin erottimen on pilkku, kertolasku toimii suoraan oikein ilman mitään muunnosfunktioita koska VB muuntaa merkkijonon itse doubleksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.