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. - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

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

Postato originariamente da nessuno:

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 ...



vero, il sistema a virgola mobile rende davvero difficile arrivarci per via numerica, a causa della precisione.

meglio le stringhe, brutto da vedere ma funzionante.

PM Quote
Avatar
arack95 (Normal User)
Pro


Messaggi: 65
Iscritto: 20/12/2009

Segnala al moderatore
Postato alle 23:07
Giovedì, 25/02/2010
eccoti un esempio:
Codice sorgente - presumibilmente C#

  1. #include<iostream>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. using namespace std;
  5. int main()
  6. {
  7.         long double originale = 102.612;
  8.         long double naturale;
  9.         long double virgola;
  10.         naturale = floor(originale);
  11.         virgola = originale - naturale;
  12.         cout << originale << "   " << naturale << "   " << virgola;
  13.         cin >> originale;
  14.         return 0;
  15. }



x qll altra cosa è un po difficile :(:(:(

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 23:11
Giovedì, 25/02/2010

intervento inutile e a sproposito, in quanto nè risponde minimamente alla domanda nè fornisce altre informazioni rispetto a quelle già date.

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 1:02
Venerdì, 26/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?



Personalmente ti consiglio le stringhe, e' piuttosto semplice.
Pero' se preferisci un metodo numerico, eccoti un'idea:

Hai detto che non sai quante cifre decimali avrai. Vero, pero' sai che non saranno piu' di 10 o giu' di li (non ricordo di preciso, ma e' un dato che ti puoi procurare facilmente).
Quindi moltiplica per 10^10 e otterrai di sicuro un numero intero. A questo punto devi liberarti di tutti gli eventuali zero finali. Per fare quello basta che dividi il numero che hai ottenuto per 10 finche' il resto e' zero. Un semplice ciclo, e il gioco e' fatto.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:30
Venerdì, 26/02/2010
Testo quotato

Postato originariamente da Matthew:

... liberarti di tutti gli eventuali zero finali ...



Eistono molte particolarità della rappresentazione in virgola mobile dei valori numerici decimali che fanno ritenere che questa situazione (zero finali) potrebbe non verificarsi in molti casi ...

Testo quotato

il gioco e' fatto.



Purtroppo non è così ...


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
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:38
Venerdì, 26/02/2010
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da Matthew:

... liberarti di tutti gli eventuali zero finali ...



Eistono molte particolarità della rappresentazione in virgola mobile dei valori numerici decimali che fanno ritenere che questa situazione (zero finali) potrebbe non verificarsi in molti casi ...

Testo quotato

il gioco e' fatto.



Purtroppo non è così ...



già, l'ho testato ieri sera, questo metodo non funziona.

vengono generati dei numeri casuali alla fine del numero da convertire causati dalla finitezza della precisione e non c'è modo nè di liberarsene nè di distinguerli dai numeri "buoni".


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:49
Venerdì, 26/02/2010
Testo quotato

Postato originariamente da HeDo:

vengono generati dei numeri casuali alla fine del numero da convertire causati dalla finitezza della precisione e non c'è modo nè di liberarsene nè di distinguerli dai numeri "buoni".




Ecco i problemi ... sono arrivati ... :)

(anche se non sono cifre "casuali", il succo è comunque quello ...)


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