Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: DOUBLE kahteen erilliseen muuttujaan

E.K.Virtanen [26.10.2005 10:23:30]

#

Kielenä QB/FB

Eli kun on

'$DYNAMIC
DIM a AS DOUBLE
DIM b AS DOUBLE
DIM c AS DOUBLE

a = 16.11 ' esim. arvo joka voi olla mitä vaan 0.0 ja 16.16 väliltä.
b = FIX(a)
c = a - b

' nyt b:n arvo on siis 16.
' ja jos b: arvon vähentää a:sta (16.11 - 16)
' saadaankin tulokseksi 0.10999... eikä 11

print a
print b
print c
sleep

Onko mahdollista hakea a:sta arvot niin että b saa arvoksi 16 ja c 11?

[EDIT]
Myös c/c++ vinkki kelpaa :)
[/EDIT]

setä [26.10.2005 11:09:42]

#

Ilmeisesti kyse pyöristysvirheestä. Määrittele b Integer tai Long-tyypiksi. Jos ei auta, pyöristä tulos haluttuun määrään desimaaleja.
Edit. Niin, c:n pitää siis olla 0.11 eikä 11.

neau33 [29.10.2005 21:28:31]

#

Hello!

c = FORMAT$(c, "##.##")

FooBat [30.10.2005 01:00:21]

#

Saat C:stä 11 kun kerrot sen 100 ja pyöristät tuloksen. En kuitenkaan suosittele double tyyppisten muuttujien käyttöä koordinaatteina tai vastaavina, kosta
1. doublen muunnos oikeiksi koordinaateiksi on melko hidasta
2. (suurenpi syy) doubleissa syntyy pyöristysvirheitä

Käytä mielummin kahta erillistä integer lukua.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta