Tervehdys
Millä käskyllä voin katkaista jonkin luvun esimerkiksi kolmeen desimaaliin kun VBA:lla laskettu tulos on hiukan turhan tarkka.
Olen tehnyt esimerkiksi näin:
Arvo = 1000 / 3
Arvo = Arvo * 1000
Arvo = Int(Arvo)
Arvo = Arvo / 1000
Toimii, mutta olisiko kellään fiksumpaa keinoa?
-Pasi-
Millä käskyllä voin katkaista jonkin luvun esimerkiksi kolmeen desimaaliin kun VBA:lla laskettu tulos on hiukan turhan tarkka.
Olen tehnyt esimerkiksi näin:
Arvo = 1000 / 3
Arvo = Arvo * 1000
Arvo = Int(Arvo)
Arvo = Arvo / 1000
Toimii, mutta olisiko kellään fiksumpaa keinoa?
-Pasi-
Vastaukset 6
Vanhimmat
Niin, vielä toinenkin kysymys oli, eli millä käskyllä saan neliöjuuren, sqrt() ei tunnu purevan?
-Pasi-
Neliöjuuri on sqr(). Vanhastaan basicin funktiot ovat tyypillisesti kolmikirjaimisia, nykyään tästä periaatteesta on monesti luovuttu.
Esittämäsi konsti on vanha basicin pöyöristysjippo. Minulla ei ainakaan ole parempaa keinoa. Ehkä vähän siistimpi: Arvo = INT(1000*Arvo)/1000
Täytyy myöntää että tuo sinun vaihtoehtosi on hieman siistimpi, ja toimiihan luvun katkaisu tuolla tavalla ihan hyvin.
Kiitos myös neliöjuurivastauksesta, keksin vastauksen tosin melkein heti sen jälkeen kun kysymyksen olin lähettänyt...
-Pasi-
Nyt sitten lomat loppui :-(
Käytä Format functiota
esim 3 desimaalia
Format(20.234567, "0.000")antaa tulokseksi 20,235
Ensimmäiseksi pahoitteluni lomien loppumisen vuoksi, toiseksi oikein paljon kiitoksia vastauksesta. Juuri tuollaista keinoa kaipasinkin.
-Pasi-