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.
desimaaleja...
6
479
Vastaukset
- 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
Minkähän takia ns. persuille ei tunnu työ maistuvan?
Vaikuttavat olevan joutoväkeä syystä tai toisesta – työttömiä tai työeläkeloisia. Muiden rahoilla pötköttelevää väkeä,672493Suomen veroaste 5 %-yks liian matala
Palauttamalla kokonaisveroaste 1990-luvun tasolle saadaan hyvinvointivaltion palvelut rahoitettua ilman velan ottoa.1052157Olit ihan
Kiihkona silloin. Sen näki ja lähes tunsi. Ei tainnut olla kaukana et olisit vetänyt lähellesi jos siihen olisi hetki tu242137Kolme neljästä suomalaisesta kannattaa miljonääriveroa
Kertoo vasemmistoliiton teettämä kysely. Veron ulkopuolelle jätettäisiin asunto. "Puolet vastaajista oli sitä mieltä, e972097Kyllä on Vasemmistoliitosta Koskelan johdolla tullut todellinen ääripuolue
se on niin tulipunainen kuin olla voi, ja selvästi haluaa jatkuvasti eripuraa, ja repiä kansaa kahtia. Siinä on jo vuod82036MTV: Harvinainen haastattelu! Vappu Pimiä kommentoi vihdoinkin uutta TTK-juontajaa
TTK-juontajaspekuloinnit käyvät edelleen kuumana. Kenet sinä haluaisit uudeksi TTK-juontajaksi? Kommentoi alle! Lue,141885Evoluutioon ja alkuräjähdykseen uskominen vaatii todella vahvaa uskoa
Että tyhjästä syntyi ja kehittyi kaikki se mitä näemme ympärillämme.5841836Trump huonommassa kunnossa kuin Usasta virallisesti sanotaan?
"Terveys on vakaa mutta ei normaali".Uskallan melkein sanoa,että Trumpin terveydentilaa kaunistellaan.Myös se että se nu1071793Yleveron tuotto siirrettävä S-ryhmälle
Yleisradio on mukana kansanmurhassa. Tuollaista ei voi tukea verovaroin. S-ryhmä on ainoa selkärankainen iso toimija S171657Kemet lomautukset
Onkohan tuo oikein lain mukaista toimintaa jatkaa jo lomautettuina olevien uudelleen lomautusta yhdenvertaisuuden ja tas411433