Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Desimaalit TextBoxiin

mikakoodi [15.01.2004 20:47:10]

#

Yksinkertainen ongelma, mutta ei aukea.Eli TextBoxeissa jotka lasketaan yhteen on esim. luvut 2,6 ja 5,2 ja 4,3.

Text26.Text:iin tulostuu tasaluku 11 (pitäisi olla 12,1). Pyytää ystävällisesti apua.Miksei laske desimaaleja?

Koodi:

Private Sub Command1_Click()

Dim luku1 As Single
Dim luku2 As Single
Dim luku3 As Single
Dim luku4 As Single

luku1 = Text23.Text
luku2 = Text24.Text
luku3 = Text25.Text
luku4 = Text26.Text

luku4 = (luku1) + (luku2) + (luku3)

Text26.Text =luku4
End Sub

eakem [15.01.2004 21:02:13]

#

Minulla tuo koodi kyllä toimi sellaisenaan...
eli sain noista luvuista vastauksen 12,1 textboxiin.

Eihän sinulla ole mitään dataformatteja määritetty niihin textboxeihin?

setä [15.01.2004 21:13:28]

#

TextBoxin desimaalit hallitsee yksinkertaisimmin seuraavasti:
Text26 = -(-Text23 - Text24 - Text25)
Yhteenlaskussa on käytettävä miinusmerkkejä koska plusmerkki liittää luvut merkkijonoina yhteen. Muut laskutoimitukset toimii suoraan. Desimaalierottimena oltava pilkku. Toimii ainakin VB5:ssä.

mikakoodi [15.01.2004 21:14:22]

#

No niin.Pienestä oli taas kiinni.Olin määrittänyt numeroksi ilman desimaaleja.
Kiitos avusta.

Blaze [16.01.2004 22:30:20]

#

lainaus:

Text26 = -(-Text23 - Text24 - Text25)
Yhteenlaskussa on käytettävä miinusmerkkejä koska plusmerkki liittää luvut merkkijonoina yhteen.

Ovelaa ^_^ Enpä olis tuota itse keksinyt. Vaihtoehtoinen tapa:
Text26 = Val(Text23) + Val(Text24) + Val(Text25)

setä [16.01.2004 22:37:54]

#

Val funktio vaatii desimaalierottimeksi pisteen. Tuloksessa kuitenkin erotin on pilkku. Siksi kannattaa käyttää textBoxeja suoraan tai muuttaa luvuksi Csng-funktiolla, joka taas ei huoli pistettä desimaalierottimeksi muttaa sentään ilmaisee asian virheilmoituksella.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta