Luvun katkaisu VBA:lla

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-
6614
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Niin, vielä toinenkin kysymys oli, eli millä käskyllä saan neliöjuuren, sqrt() ei tunnu purevan?

-Pasi-

Äänestä
  • Neliöjuuri on sqr(). Vanhastaan basicin funktiot ovat tyypillisesti kolmikirjaimisia, nykyään tästä periaatteesta on monesti luovuttu.

    Äänestä

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

Äänestä
  • 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-

    Äänestä

Nyt sitten lomat loppui :-(

Käytä Format functiota
esim 3 desimaalia
Format(20.234567, "0.000")antaa tulokseksi 20,235

Äänestä
  • Ensimmäiseksi pahoitteluni lomien loppumisen vuoksi, toiseksi oikein paljon kiitoksia vastauksesta. Juuri tuollaista keinoa kaipasinkin.

    -Pasi-

    Äänestä

Kommentoi aloitusta


Pasi kirjoitti:

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-

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu