Kezdőoldal » Számítástechnika » Programozás » C#-ban (Microsoft Visual...

C#-ban (Microsoft Visual Studio 2012), hogyan tudom kiírni pontosan a művelet eredményét, ha az nem egész szám?

Figyelt kérdés

Szóval, tegyük fel, hogy ez a programom:

private void button1_Click(object sender, EventArgs e)

{

int a = Convert.ToInt32(textBox1.Text);

int b = Convert.ToInt32(textBox2.Text);

int c =Convert.ToInt32(a / b);

textBox1.Text = Convert.ToString(c);

textBox2.Text = "";


Tehát a felhasználó beír két számot(egyet a textBox1-be, egyet a textBox2-be), majd rákattint a button1-re, amivel elindítja a fenti folyamatot.

Először átkonvertálom a két textbox szövegét, amiket eltárolok egy "a" és egy "b" változóban. Majd elosztom a két számot és az eredményt elmentem egy "c" változóban.

Az eredményt kiírom a textbox1-be, a textbox2-ből pedig kitörlöm a számot.


Az a baj a programmal, hogy ha nem egész szám az eredmény, akkor is egész számot ad ki eredményként.

Például:

15/10 = 1 (holott mindenki tudja, hogy 1,5)

Hogyan tudnám megoldani azt, hogy egy(esetleg 2) tizedesjegy pontossággal adja meg az eredményt?


Előre is köszönök szépen minden választ! :)

Zöld pacsizok! :D


2014. nov. 6. 19:43
 1/6 anonim válasza:
Pl. úgy hogy az eredményt nem egész értékén tárolod, hanem pl. float-ban. Egész osztás eredménye egész!
2014. nov. 6. 20:33
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Igen, ha Int-té konvertálod, akkor abból nem jön ki semmilyen tört szám. Legyen mondjuk "float".
2014. nov. 6. 20:35
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
Nem egészen értem, hogy mire gondoltok. Leírnátok a kódot?
2014. nov. 6. 20:57
 4/6 anonim ***** válasza:
minek ablakozol, ha az alapvető alap adattípusokat se ismered?
2014. nov. 6. 21:03
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

Iskolában tanítják, no!


Esetleg el tudnád magyarázni, hogy hogyan kellene kinéznie a programnak?

2014. nov. 6. 21:07
 6/6 anonim ***** válasza:

int = Int32 = egész szám (olyan, mint az 1 meg a 2 vagy a 3)


Convert.ToInt32( egész számmá alakít egy számot, szöveget, akármit )


Szóval ehelyett kéne neked mondjuk double (vagy float, ami kevésbé pontos, vagy inkább decimal, ami pontosabb) nevű adattípust használni, amiben már kifejezhetőek nem egész számok is.



Valahogy így (nem muszáj pont így):


double a = Convert.ToDouble(textBox1.Text);

double b = Convert.ToDouble(textBox2.Text);

double c = a / b;


Mivel a és b is szám típusú, itt a 3. sorban nem kell konvertálni, simán elvégezhető az osztás.



Ha két tizedesjegyig akarod csak kiírni, akkor vagy először kerekíted a számodat, vagy a szöveggé alakító függvénynek adod meg a két tizedesjegyes formátumot:


textBox1.Text = c.ToString("0.00");

textBox2.Text = "";

2014. nov. 6. 21:30
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!