Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
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...
long double
dovrebbe essere il tipo di dato numerico con più cifre(se ricordo bene 304) + 10 dopo la virgola :|
()
Newbie
Messaggi: Iscritto:
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)..
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à.
()
Newbie
Messaggi: Iscritto:
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?
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
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
()
Newbie
Messaggi: Iscritto:
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?
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++
float fNum = 35.2134;
char pBuff[100];
sprint(pBuff,"%f", fNum);
sinceramente è veramente orribile, preferisco avere una soluzione più "numerica", appena finisco di implementarla la posto
Postato originariamente da HeDo: oddio che brutta cosa passare per le stringhe
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à.