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]
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.
Hello!
c = FORMAT$(c, "##.##")
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.