Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - IF Variabile Doble è un numero intero
Forum - C/C++ - IF Variabile Doble è un numero intero

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
IlGenionero (Normal User)
Newbie


Messaggi: 3
Iscritto: 28/09/2006

Segnala al moderatore
Postato alle 21:02
Giovedì, 28/09/2006
Allora e da poco ke mi cimento nel C++ cmq sto cercando di creare un Calcolatrice + o - Avanzata.
Facendo delle dei conti come divisioni vengo numere decimali, ora vorrei creare una condizione if che se il numero è intero succede questo ho provato alcune soluzioni ma senza successo spero di essermi sipegato  in modo chiaro e attendo vostre delucidazioni...

PM Quote
Avatar
Fr3d3R!K (Ex-Member)
Expert


Messaggi: 589
Iscritto: 17/08/2006

Segnala al moderatore
Postato alle 22:32
Giovedì, 28/09/2006
prova con il typeof che restituisce il tipo della variabile...altrimenti non so come aiutarti...

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 1:36
Venerdì, 29/09/2006
Con un piccolo trucchetto puoi verificare se il numero contiene una parte decimale:

Codice sorgente - presumibilmente C/C++

  1. bool is_integer(double number){
  2.   return ((number * 10) % 10 == 0);
  3. }



Infatti se passiamo ad esempio il parametro 5:

5 * 10 = 50
50 % 10 = 0 => Intero

Ma se passiamo 5,3:

5,3 * 10 = 53
53 % 10 = 3 => Con virgola

;)


Il mio blog: https://piero.dev
PM Quote
Avatar
Black Shadow (Founder Member)
Expert


Messaggi: 323
Iscritto: 30/03/2006

Segnala al moderatore
Postato alle 14:02
Venerdì, 29/09/2006
Interessante...:love:

PM Quote
Avatar
Fr3d3R!K (Ex-Member)
Expert


Messaggi: 589
Iscritto: 17/08/2006

Segnala al moderatore
Postato alle 14:06
Venerdì, 29/09/2006
che bestia che sono l'avro usato mille volte sto trucchetto e non l'ho ricordato ora... :rotfl:

PM Quote
Avatar
IlGenionero (Normal User)
Newbie


Messaggi: 3
Iscritto: 28/09/2006

Segnala al moderatore
Postato alle 15:10
Venerdì, 29/09/2006
Un mio amico mi ha conisgliato di usare questo sistema :
if (floor(var)==var){}
e sembra funzionare alla grande cmq provero anke questaltro metodo....

Grazie a tutti....

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 23:21
Venerdì, 29/09/2006
Non so come opera la funzione floor, quindi non saprei dirti quale delle due è la più efficente...


Il mio blog: https://piero.dev
PM Quote
Avatar
Fr3d3R!K (Ex-Member)
Expert


Messaggi: 589
Iscritto: 17/08/2006

Segnala al moderatore
Postato alle 10:30
Sabato, 30/09/2006
trovate le funzioni...
Codice sorgente - presumibilmente Plain Text

  1. floor(x) arrotondamento per difetto
  2. ceil(x) arrotondamento der eccesso


tenere presente che con i numeri negativi floor arrotonda sempre per difetto...
bye bye
edit: wow la skill è diventata expert...sono onorato!!! :D

Ultima modifica effettuata da Fr3d3R!K il 30/09/2006 alle 10:30
PM Quote
Avatar
Shutdown (Founder Member)
Guru


Messaggi: 1212
Iscritto: 10/09/2005

Segnala al moderatore
Postato alle 0:44
Martedì, 07/11/2006
A mio parere se il "problema" è verificare se un numero è intero oppure no, implementerei il seguente codice sorgente (C++):

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(int argc, char* argv[])
  6. {
  7.         int n; // Numero da analizzare
  8.  
  9.         cout << "Inserisci il valore di n: ";
  10.         cin >> n; // Muovo il buffer nella variabile n
  11.  
  12.         if( (n%2)==0 ) // Se il resto di n/2 è ZERO
  13.                 cout << "Il numero " << n << " e' pari" << endl;
  14.         else // altrimenti
  15.                 cout << "Il numero " << n << " e' dispari" << endl;
  16.  
  17.         cin >> ""; // Evito l'uscita inaspettata
  18.  
  19.         return(0);
  20. }



Inutile dire che n può essere SOLO un valore INTEGER, in quanto l'operatore % (MODULO) lavora solo con valori di tipo intero.

Ciauz... :rotfl:

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo