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++ - Precisione cifre.
Forum - C/C++ - Precisione cifre.

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


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti! Ho constatato che il caro c++ dia di default un numero di cifre molto piccolo rispetto ad esempio al real del pascal che non ricordo esattamente quante fossero ma erano un bel po'!
Io mi sono appena cimentato nel c++ quindi sto scoprendo molte cose nuove, comunque credo proprio che ci debba essere una qualche direttiva per darmi il massimo delle cifre disponibili o comunque di poterle sceglierle...

Mi sapreste aiutare?
Grazie mille in anticipo

PM Quote
Avatar
arack95 (Normal User)
Pro


Messaggi: 65
Iscritto: 20/12/2009

Segnala al moderatore
Postato alle 14:51
Giovedì, 25/02/2010
long double
dovrebbe essere il tipo di dato numerico con più cifre(se ricordo bene 304) + 10 dopo la virgola :|

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:02
Giovedì, 25/02/2010
ok... ma dato un numero long double ad esempio 34.526 come faccio a separare le cifre intere da quelle decimali?
Cioè posso ottenere due varibili da quella iniziali tale che
a = 34
b = 526
(vanno benissimo integer)..

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:47
Giovedì, 25/02/2010
Puoi usare un metodo "matematico" (parte intera e numero - parte intera) oppure convertire il valore in stringa e usare le funzioni apposite di gestione delle sottostringhe usando come "separatore" il punto decimale.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:54
Giovedì, 25/02/2010
si... proprio quello che cercavo...
ma due domande:
1) che funzione devo usare per convertire un numero in una stringa?
2) tu parli di usare la virgola come separatore... ma esiste una funzione propria che ti separa ciò che sta a destra e ciò che sta a sinistra di una determinata cosa o lo devo fare tramite codice mettendo le condizioni?

Grazie...

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:39
Giovedì, 25/02/2010
Testo quotato

Postato originariamente da nessuno:

Puoi usare un metodo "matematico" (parte intera e numero - parte intera) oppure convertire il valore in stringa e usare le funzioni apposite di gestione delle sottostringhe usando come "separatore" il punto decimale.



oddio che brutta cosa passare per le stringhe :D

puoi fare così:



double dNum = 35.234;

int iInt = (int)dNum;     // Troncamento -> Parte intera
double dDec = (dNum - iInt); // Parte decimale: 0.234

non so a cosa ti possa servire avere il numero dopo la virgola in un intero :)  



PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:59
Giovedì, 25/02/2010
ecco è proprio quello che mi serve: avere la cifra intera dopo la virgola...
cioè non avere 0.234 ma 234
Ho già scartato il moltiplicare per 100 perchè non so quante cifre esatte avrò... comunque mi serve per un calcolo sul seno (sto sperimentanto una certa cosa, quando avrò finito sta cavolo di procedura per ottenere le cifre per intero vi dirò.. :))

mi sembra che non mi rimanga altro se non passare per le stringhe...
come si fa?

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 17:17
Giovedì, 25/02/2010
Testo quotato

Postato originariamente da a_butta:

ecco è proprio quello che mi serve: avere la cifra intera dopo la virgola...
cioè non avere 0.234 ma 234
Ho già scartato il moltiplicare per 100 perchè non so quante cifre esatte avrò... comunque mi serve per un calcolo sul seno (sto sperimentanto una certa cosa, quando avrò finito sta cavolo di procedura per ottenere le cifre per intero vi dirò.. :))

mi sembra che non mi rimanga altro se non passare per le stringhe...
come si fa?



mah, cmq

Codice sorgente - presumibilmente C/C++

  1. float fNum = 35.2134;
  2. char pBuff[100];
  3.  
  4. sprint(pBuff,"%f", fNum);



sinceramente è veramente orribile, preferisco avere una soluzione più "numerica", appena finisco di implementarla la posto ;)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:51
Giovedì, 25/02/2010
Testo quotato

Postato originariamente da HeDo:
oddio che brutta cosa passare per le stringhe :D



Eppure non è così brutto come pensi ...

Potresti avere brutte sorprese in caso contrario ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo