C# kerekítés, miért?
Figyelt kérdés
nyelv: C#
{
int piece = 1.23;
double eredmeny = piece / System.DateTime.Now.DayOfYear;
MessageBox.Show(eredmeny.ToString());
}
a megjelenő MessageBox-ban az eredmény egy kerekített érték. miért?
2013. márc. 23. 18:15
1/6 anonim válasza:
Nem C#-ozok, de az int egy egész típus. Hiába töltesz be 1.23-at, szerintem az még 1 marad. Akkor is ezt kapod, ha a piece változót double-nak veszed fel?
2/6 anonim válasza:
Csak nem azért mert az int egész típus, és a 1.23-ból 1-et csinál az inicializálás pillanatában?
3/6 anonim válasza:
Gondolom van C#-ben is float, mint C/C++ esetén.
4/6 anonim válasza:
A fenti kód le sem fordul, ilyen hibát ad:
Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)
5/6 A kérdező kommentje:
bocsánat, a piece itt csak egy példa volt, igazából vmi 400 körüli érték... a lényeg az volt h az eredmény nem egész, mégis egészet ad vissza.
időközben sikerült megoldanom a problémát, de köszi a gyors válaszokat :)
ha érdekelne még valakit, ez volt a megoldás:
double eredmeny = (double)piece / (double)System.DateTime.Now.DayOfYear;
2013. márc. 24. 00:45
6/6 anonim válasza:
Elég az egyiket castolni, akkor is double lesz az eredmény.
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!