Mit csináltam rosszul vagy mit hagytam ki? C#-ban egy testtömegindex kalkulátort szeretnék csinálni. Ehhez.
...Ehhez a felhasználótól bekérem a testmagasságát és a testsúlyát, majd egy képlet szerint szeretném kiszámíttatni a programmal, végül pedig természetesen kiiratni egy label-ben az eredményt. Szerintem konvertálási hibá (i) m van (nak). Ha valaki ért hozzá az leírhatná nekem, hogy megértsem, mert most szerintem fogalomzavarban is vagyok. Előre is köszönöm.
Ez a teljes program sor.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace testtomegindex
{
public partial class testomegform : Form
{
int magas, suly;
double magasnegyzet;
public testomegform()
{
InitializeComponent();
}
private void kilepbutton_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void magassagtextBox_TextChanged(object sender, EventArgs e)
{
magas = Convert.ToInt32(magassagtextBox.ReadOnly);
}
private void sulytextBox_TextChanged(object sender, EventArgs e)
{
suly = Convert.ToInt32(sulytextBox.ReadOnly);
}
private void szamitasbutton_Click(object sender, EventArgs e)
{
magasnegyzet = Math.Sqrt(magas);
double bmi = suly / magasnegyzet;
erteklabel.Text = bmi.ToString();
}
}
}
Ez mi? sulytextBox.ReadOnly
Most nem nyitottam meg a vs-t, de sztem booleannal tér vissza. Esetleg sulytextBox.Text ???
Meg mondjuk mind1, de minek esemény a gépeléshez? Pont elég lenne kiolvasni a szamitasbutton klikk eseményében. Meg int/int = int
private void szamitasbutton_Click(object sender, EventArgs e)
{
erteklabel.Text = (Convert.ToDouble(sulytextBox.Text) / Math.Sqrt(Convert.ToInt32(magassagtextBox.Text))).ToString();
}
Jó megoldásnak tűnik, mert már számokat ír ki tizedesekben.
Köszi.
Működik a program, de attól még én nem tudnék összerakni egy ilyen összetett sort magamtól egyenlőre.
Bár segítő megjegyzéseket nem írtál mellé, hogy mit miért, de majd sokáig nézem és rájövök. Ment a pont.
Ha még nézi valaki a kérdést, az nyugodtan írhat még.
Te is ezt csináltad.
string valami = texbox.text;
//a valami változód értéke a textbox.text értéke lesz, ami string típusú.
int valami2 = convert.toint32(valami);
//átkonvertálja a stringet int (egész számmá), és a valami2 változóba rakja.
Na most megteheted, hogy:
valami2=convert.toint32(texbox.text);
//Ez ugyan az, csak rögtön a textbox.text-el dolgozol, nem rakod ki változóba az értéket, mert minek? Ezt csinálhatod metódusokkal is pl a Math.Sqrt(12) függvény egy double-ként tér vissza, és ezt közvetlenül használhatod egy másik függvénybe, vagy kifejezésbe is, anélkül, hogy kiraknád egy változóba.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!