aspMedlem sedan aug. 2002733 inlägg Hej...
hur rundar man av ett tal?
Sedan så vill jag definera svaret till ett decimaltal, Double.
Såhär kan man göra för att definera talet som Double.
Dim resultat As Double
svar = txtHojd.Text * txtBredd.Text
txtSvar.Text = svar
Men man kan också gå en smidigare väg.
txtSvar.Text = txtHojd.Text * txtBredd.Text
Men då vet jag inte hur jag skall kunna definera svaret som Double. Kan man sätta allt inom parantes?
Marcus EMedlem sedan maj 20021 466 inlägg Använd Double.Parse(txtHojd.Text). Då görs konverteringen precis som du vill ha den. I C# finns inga automatiska konverteringar. Då slipper man det här problemet.
Och så var det avrundning. Använd Math.Round.
aspMedlem sedan aug. 2002733 inlägg Så detta är korrekt?
txtSvar.Text = Math.Round(Dobule.Parse(txtHojd.Text * txtBredd.Text))
Marcus EMedlem sedan maj 20021 466 inlägg Nja, Parse ska köras för varje konvertering. Det mest korrekta är:
txtSvar.Text = Math.Round(Double.Parse(txtHojd.Text) * Double.Parse(txtBredd.Text)).ToString()
Double, inte Dobule. :)
aspMedlem sedan aug. 2002733 inlägg Det var bara ett stavfel. :)
Vad gör ToString() ??
DinoMedlem sedan sep. 20011 914 inlägg Math.Round() retunerar ett värde av typen double och TextBoxens property Text är av typen string. Så om du försöker tilldela Text värdet av Round så kommer du få ett felmeddelande. Vad ToString() gör är att den retunerar en string av det objekt den används på. I ditt fall görs double om till string.
red/lite tydligare
Marcus EMedlem sedan maj 20021 466 inlägg ToString() eller ToString konverterar double till en sträng, precis som Dino skriver, men det fungerar även utan ToString. Då kommer VBs automatiska konvertering in och det var den du ville undvika från början.
Med ToString kan du faktiskt också avrunda talen för formateringsbehov. Så här kommer ett till förslag:
txtSvar.Text = (Double.Parse(txtHojd.Text) * Double.Parse(txtBredd.Text)).ToString("0")
Obs. att ToString avrundar till en sträng medan Math.Round avrundar till en double.
aspMedlem sedan aug. 2002733 inlägg Men när jag skriver såhär så behöver jag inte använda ToString()
txtSvar.Text = txtHojd.Text * txtBredd.Text