Kezdőoldal » Számítástechnika » Programozás » Elmagyaráznád miért nem tud...

Elmagyaráznád miért nem tud konvertálódni implicit vagy explicit az alábbi művelet?

Figyelt kérdés

float f = 452.22;

double d = f;

//Ez sem jó:

double d = (double)f;


Miért van az,hogy csak akkor jó ha így inicializálom a floatot: 452.22f;


2014. okt. 1. 00:23
1 2
 1/13 anonim ***** válasza:
Milyen nyelv, milyen fordító?
2014. okt. 1. 00:35
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:

Ha double ként megadsz egy számot, pl. 452.22-t. Akkor dupla pontos és ez nem alakítható egyszeres pontosságúra külön explicit jelzés nélkül Java-ban! Bakker lehetett volna C, C++ vagy más, könyörgön írjátok ki milyen nyelv.

Így megy:

float f = (float)5.2;

float g = 5.2f;

double f2 = f;

double g2 = g;

2014. okt. 1. 00:47
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:

Az a baj, hogy ha leírod azt, hogy 452.22, akkor az alapból egy double típusú szám.

Azt vagy explicit módon át kell alakítani float-tá, vagy eleve úgy kell leírnod azt a számot, hogy double helyett float-nak vegye már eredetileg is (f betű a végére).


float f = (float) 452.22;

// Vagy még jobb:

float f = 452.22f;

2014. okt. 1. 03:01
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:

Szóval az, amit a második ír...


Szinte mindegy milyen nyelv, a legtöbben így van.

2014. okt. 1. 03:03
Hasznos számodra ez a válasz?
 5/13 iostream ***** válasza:

"Szinte mindegy milyen nyelv, a legtöbben így van."


C-ben például pont nincs így. C++-ban se. Pythonban a float típus többnyire dupla precizitású, amit máshol double-nek hívnak. Nagyon nem ilyen egyszerű a téma. A Java (és a C#) tiltja az implicit típuskonverziókat ha adatvesztés léphet fel, ez az ő döntésük, de nem a legtöbb nyelv döntése.

2014. okt. 1. 16:28
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:

# 5 A világon jelenleg kb. a második legtöbbet használt, és egy másik tök nagy nyelvben is így van, igazán ki lehetett volna következtetni, melyik nyelvről beszél.

Aki nem ismeri fel ezt a "problémát", az nem ismeri azt a nyelvet, úgyhogy majdnem teljesen fölösleges lett volna kiírni.

2014. okt. 1. 18:15
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:

"A világon jelenleg kb. a második legtöbbet használt, és egy másik tök nagy nyelvben is így van, igazán ki lehetett volna következtetni, melyik nyelvről beszél."


Nem, nem lehet kikövetkeztetni, mert olyan nyelv nincs amiben explicit nem lehet castolni. A világban különben sem a hossz, hanem a forma meg a vastagság számít...


"Aki nem ismeri fel ezt a "problémát", az nem ismeri azt a nyelvet, úgyhogy majdnem teljesen fölösleges lett volna kiírni."


Ember én válaszoltam meg a kérdést, és jó lett volna, ha nem C-re gondolok elsőre, és az explicit konverzió pont működik Java-ban meg mindenben, az implicit meg jó float->double irányban. Erre a kérdés azt állítja, hogy nem grat...

2014. okt. 1. 18:57
Hasznos számodra ez a válasz?
 8/13 anonim ***** válasza:
Én értettem, ti meg nem, úgyhogy nekem igazam van, ti meg buták vagytok.
2014. okt. 1. 19:03
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:

Sajnálom ha sikerült kellemetlenséget okoznom azzal,hogy nem jutott eszembe kiírni a prog nyelvet.

Egyébként c# ról volt szó.De nekem a javás válaszok is tökéletesen megfeleltek ebben az esetben.

2014. okt. 1. 19:50
 10/13 A kérdező kommentje:

És ebben az esetben minek számít alapból a literális állandó?

float f= 22345;

float f1 = 4456783947;

2014. okt. 9. 16:46
1 2

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!