desimaaleja...

VB .NET

Yritin tässä saada ohjelman laskemaan... Ja onnistuinkin...

Sain ohjelman muuntamaan tekstiä kelvollisiksi luvuiksi käyttämällä Val funktiota... Se toimii sinänsä ihan hyvin, mutta se hyväksyy desimaalierottimeksi vain ja ainoastaan pisteen, ei siis pilkkua...

ohjeista kaivoin tälläisen pätkän:

"Note The Val function recognizes only the period (.) as a valid decimal separator. When different decimal separators are used, as in international applications, use CDbl or CInt instead to convert a string to a number."

Tuossa todetaankin, että Val tunnistaan vain pisteen (.) desimaalierottimeksi... ja jos tarvitaan erilaisia desimaalierottimia, niin sitten pitäisi string -> numero muunnoksiin käyttää CDbl tai CInt ... Mutta jostain syystä tuo ei vain toimi...

Siis jos yritän käyttää vaikka tuota CDbl samaan tapaan kuin sitä Val systeemiä, niin kone vain tuuttaa erroria.

"An unhandled exception of type 'System.InvalidCastException' occurred in microsoft.visualbasic.dll

Additional information: Cast from string "TextBox1" to type 'Double' is not valid."

Miten saisin koneen ymmärtämään pilkkua? Val ei ilmeisesti sitä ymmärrä, ja CDbl ei näytä toimivan, vaikka ohjeet antavat ymmärtää, että sen pitäisi pystyä juuri tuohon.

6

572

    Vastaukset 6

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • juport

      No tuosta virheilmotuksesta päätellen koitat castaa merkkijonon "TextBox1" joksikin luvuksi. Missähän numerojärjestelmässä tuollaisen pitäisi toimia?!?!?

    • ...

      Pilkkua voi käyttää textboxissa desimaaliosan erottamiseen, jos esim. tekee aliohjelman, jolla tutkii textboxin sisällön merkki merkiltä. Aliohjelmassa desimaalipilkku pisteeksi ja muunnetun merkkijonon palautus.Val-funktiota voi käyttää aliohjelmaa kutsuvassa funktiossa tekstin muuttamiseksi luvuksi.

    • -jk-

      Jos TextBox1:n sisältö on numeroita:

      Dim a As String
      Dim b As Double
      a = TextBox1.Text
      b = Convert.ToDouble(a)

    • Petri_Petri

      Voithan myös ennen val-muutosta muuttaa tekstissä olevan pilkun pisteeksi.

      Tai ehkä kätevämpää, että teet funktion, joka tekee tuon muutoksen ja palauttaa numeron.

      Function Palautanro#(byval NroTekstinä$)
      dim i
      i=instr(1,NroTekstinä$,",") ' Onko tekstissä pilkkua
      if i then mid$(NroTekstinä$,i,1)="." ' jos tekstissä on pilkku, muutetaan se pisteeksi
      Palautanro#=val(NroTekstinä$)
      End Function

    • .net

      Kiitokset neuvoista.

      Tällä kertaa vain satuin jo keksimään ratkaisun itsekin...

      If IsNumeric(TextBox1.Text) = True Then
      Luku1 = TextBox1.Text
      End if

      Tuollaisella koodilla sain textboxin sisällön luettua numeroina...

    • pitkonen

      CDbl ymmärtää pilkun desimaalierottimena jos se on määritelty maa-asetuksissa erottimeksi.

      Tämä pilkku/piste -erotinsysteemi on kyllä yksi riesa ms:n kehittimissä. Osa funktioista käyttää aina pistettä ja osa käyttää maa-asetuksissa määrättyä erotinta.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ampuminen kylpylässä

      Onko vornasen timbe käynyt hiukan kylpemässä vai mikä tämä ampumatapaus on kylpylässä? Tuntuu aika villi meno olevan naa
      Naantali
      61
      1336
    2. Moottoripyöräonnettomuus

      Mopomiitissä tapahtunut onnettomuus ja uutisointi. Ajoradan ylityksen vaarallisuudesta ei mitään uutisointia. Ei myöskää
      Alajärvi
      90
      1017
    3. haluatko lopettaa

      ihan lopullisesti
      Ikävä
      164
      937
    4. Jos oikeasti haluat mies

      Tiedät mitä on tehtävä. Luotan, että etenet jos haluat. En voi tehdä enää mitään kun ei ole numeroasi.
      Ikävä
      105
      874
    5. Uusi ruokapaikka

      Tuleeko Haapavedelle uusi lounaspaikka ,haetaan kokkia? Uusi firma kyseessä
      Haapavesi
      30
      863
    6. Kemijärvellä vesionnettomuus

      Pitkänsillan ja taiteilijanniemen välillä nähty henkilön painuvan veden alle. Mitä on tapahtunut? Onko vesihiisi taas as
      Kemijärvi
      25
      808
    7. Kerro minulle totuus

      Minä haluan kuulla sen nyt. Kenen kanssa sinä olet nykyisin, ja miksi jätit minut? 🐒
      Ikävä
      201
      772
    8. Hautakivien massapoisto aloitettu Härkökankaan vanhalla hautausmaalla kaikessa hiljaisuudessa!

      Suomussalmen seurakunnan kirkkoneuvosto on tehnyt historiansa surullisimman päätöksen hautojen haltuunotosta ja raivauks
      Suomussalmi
      45
      755
    9. Miten sinä voit?

      Kysytkö kukaan sitä sinulta? Olen huomannut, että jos kohtaa empaattisen ihmisen ja hän kysyy noin, saattaa padot murtua
      Ikävä
      93
      707
    10. voi luoja kun uskaltaisin

      laittaa viestiä sinulle...
      Ikävä
      27
      704
    11. Hei, voitko kuunnella

      Voisitko auttaa minua selvittämään asioita? En halua ajaa sinua hulluuteen kanssani, en sitoa sinua, en esittää vaatimu
      Ikävä
      126
      693
    12. Joku porukka lähtenyt täältä

      Ihmeen hiljainen on palsta nyt. Yleensä tänne tulvii aloituksia yms, mutta nyt on kyllä erikoisen hiljaista.
      Ikävä
      162
      616
    13. VILLISIKALAUMA TULOSSA IISALMEEN

      Yle: Poliisi varoittaa Iisalmen keskustaa lähestyvästä villisika­laumasta Poliisi on pyytänyt Pohjois-Savossa Iisalmessa
      Iisalmi
      43
      616
    14. Miten yrität

      Vielä saada kaivattusi?
      Ikävä
      61
      602
    15. Useita poliisiautoja kunnantalolla

      Maijojen kyydissä tuttuja naamoja ja nyt kannetaan arkistolaatikoita autoihin. Nyt se on alkanut. Pidätykset.
      Ähtäri
      12
      585
    16. Jos näkisimme vielä joskus

      ... mihin veisit miut treffeille? 😊
      Ikävä
      85
      548
    17. On todella ikävää

      Todella ikävää, että asiat ovat menneet tällaisiksi. Tämä ei ollut missään vaiheessa tarkoitukseni. Olen tehnyt virheit
      Ikävä
      78
      530
    18. Olipa yllätys

      Kuten hyvin moni tiesi/arvasi että valetta alusta loppuun toi *olemme ystäviä* satu. Instassaan käsi kädessä kuva kertoo
      Kotimaiset julkkisjuorut
      187
      511
    19. sinulle....

      Olen ymmärtänyt, ettei minua haluta enää takaisin. Mitään pahaa en koskaan halunnut sinulle. Ikävä että kuvittelit niin.
      Ikävä
      75
      497
    20. Ottanet yhteyttä

      Facebookissa,jos on jotain asiaa.Miehelle! T.M-nainen.
      Ikävä
      55
      497
    Aihe