Miksi Visual Basic pysty suorittamaan " 1 / 60 " jakolaskua?
Miten niin ei pysty. Missä yriti tota suorittaa?
Miten niin ei pysty? MsgBox 1 / 60 antaa messulaatikon, jossa lukee 1,66666666666667E-02, kuten pitääkin.
Private Sub Command1_Click()
Dim sek As Long
sek = 1 / 60
MsgBox "Yksi sekunti on " & sek & " minuuttia."
End Sub
en tiedä mitä tuossa on vikana
Vika on muuttujan tyypissä: Long-tyyppisessä muuttujassa voi olla ainoastaan kokonaislukuja. Siksi tuonkin jakolaskun tulos pyöristetään kokonaisluvuksi. Muuta muuttujan tyypiksi Single tai Double, niin johan toimii.
kiitti
Private Sub Command1_Click()
Dim day As Single
day = 1 * 60 * 60 * 24
MsgBox "" & day * Text1.Text & " sekuntia."
End Sub
tuossakin koodissa ilmeni joku vika. mikä?
lainaus:
day = 1 * 60 * 60 * 24
MsgBox "" & day * Text1.Text & " sekuntia."
Meinaatko overflowta tuossa day-lausekkeessa? Entäs tuo seuraava rivi. Siitä on paha ottaa selvää, kun syntaksit on kaikki ihan pielessä.
Ei MsgBox voi toimia noin. SIihen täytyy pistää lauseke:
muuttuja = Msgbox(day * Text1.Text)
Edit: Ja nuo lainausmerkit " voi laittaa vaan kun kirjoittaa tekstiä. Niitä ei voi olla kahta peräkkäin, tai siis... jaa no en osaa kyllä neuvoa, kun ei saa selvää mitä koodin pitäisi näyttää.
No okei joo... pistä noin.
teksti = Str$(day * Val(Text1.Text)) + " sekuntia."
Overflowsta en tiedä. Se menee yli ymmärryksen, eihän siitä edes tule kovin isoa lukua.
Edit:
Niin ja tietysti:
a = MsgBox(teksti)
day = 1 * 60 * 60 * 24
en tiedä mutta ohjelma valittaa tuosta jotain
Joo no ainakin voit erotella laskun näin:
day = 60 * 60
day = day * 24
ykkösellä kertomisen voi jättää pois, koska mikään luku ei muutu ykkösellä kerrottaessa.
Ongelmana lienee se, että tuloksena oleva luku mahtuisi kyllä muuttujaan, mutta lukujen oletustyyppi taitaa (merkillistä kyllä) olla Integer. Korjaa rivi esim. näin; nyt lukujen tyypiksi tulee Single, koska ! on Single-tyypin tunnus.
day = 60! * 60 * 24
MsgBox-komennon käytössä tai missään muussakaan ei kylläkään minusta ole vikaa.
sain jo korjattua homman
Oletustyyppi Integer? Eikös kaikki muuttujatkin ole oletukselta SINGLE:jä?
Aihe on jo aika vanha, joten et voi enää vastata siihen.