C#-ban van két int értékem (egyik sem 0, kiírással ellenőriztem), de mikor el akarom osztani egy double típusú változóban, hogy tizedes értéket kapjak, de nullát ad vissza, miért lehet ez?
Figyelt kérdés
double szazalek = latta / ossz * 100;
Console.WriteLine(latta + " / " + ossz + " = " + szazalek);
A latta értéke 100, az ossz értéke 219.
2022. máj. 14. 11:44
1/4 anonim válasza:
Mert az inteket egészként osztja el, így int lesz az eredmény, azaz 0. Csak a legvégén konvertálja double-é, azaz a 0-t 0.0-vá.
2/4 Pelenkásfiú válasza:
Megoldás: (legalább) az egyik elé tedd oda, hogy "(double)"!
3/4 A kérdező kommentje:
Érteeem, átírtam Convert.Double(latta) / Convert.Double(ossz)-e és működiik köszönöm szépen!
2022. máj. 14. 12:41
4/4 Pelenkásfiú válasza:
Szerintem itt egyszerűbb a "(double)" casting, hiszen az int változó értéke biztosan érvényes lesz double-ként is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!