Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet megtudni, hogy...

Hogyan lehet megtudni, hogy egy szám egész szám-e? (c++)

Figyelt kérdés

Azt gondoltam, hogy attól lesz valami egész, ha 1-el osztva maradékot ad.

Nem jó próbálkozások:


(az i természetesen double tipusú)


1:

(i%1.00)==0


2:

(i%1.0)==0


3:

i%1==0


2015. nov. 19. 01:02
 1/5 anonim ***** válasza:

Itt van a példa:

double param, fractpart, intpart;

param = 3.14159265;

fractpart = modf (param , &intpart);

//ellenőrzöd a fractpart-ot, hogy 0-e, vagy az intpart(egészrész) egyezik-e a param-al

if(fractpart==0.0) {

...

}


[link]

2015. nov. 19. 01:18
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

bool Egesz = abs(i - (int)i) < epsilon;


Ahol az "epsilon" egy nagyon kis szám (kiszedheted a numeric_limits-ből, vagy egyszerűen odaraksz valami kis számot, pl 10e-6)

2015. nov. 19. 08:18
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
71%

Az első hozzászólás nem teljesen jó


if(fractpart==0.0)

- mivel "fractpart" is double, ez nem feltétlenül működik


Ha így akarod, akkor valami ilyen kell:

if(abs(fractpart) < epsilon)


Ahol epsilon egy kis szám.


összefoglalva: float és double esetén egyenlőséget nem ==-vel tesztelünk, hanem úgy, hogy a különbség egy adott (nagyon kis) érték alatt van.

2015. nov. 19. 08:21
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

Csodak csodajara:

[link]

2015. nov. 19. 15:07
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
Tökéletesen működik a double ==-vel történő összehasonlítása ebben az esetben. Aki epszilonozni akar az összekeveri a számításokban a kerekítési hibával, pl. két double összeadása/szorzása/osztása/.... Semmi értelme epszilonnal egészekről beszélni.
2015. nov. 19. 22:04
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!