PDA

View Full Version : [C++] domanda facile facile


ClaudioP
26-03-2008, 14:09
ciao a tutti ho una domanda facile facile ma a cui non sono riuscito a rispondere cercando sia su google che sul "cerca" del forum.

ho bisogno di vedere in output una sequenza di cifre decimali(realmente esistenti) maggiore di quelle che mette di default il c++; brutalmente avrei bisogno che il troncamento avvenisse il più lontano possibile dalla virgola.

qual è il comando che mi permette di fare ciò?

grazie a tutti

Torav
26-03-2008, 14:25
beh puoi stampare una variabile con un numero arbitrario di cifre decimali in questo modo:

printf("%.20f", prova)

e lui ti stamperà 20 cifre dopo la virgola. L'unica cosa a cui devi stare attento è che (se non sbaglio) la precisione dei calcoli e in generale dei double dipende dal sistema e/o dal compilatore che utilizzi.

tomminno
26-03-2008, 14:34
Prova con:

#include <iostream>
#include <iomanip>

using namespace std;

double d = 1.2345678901234567890;
cout << setprecision(20) << d << endl;

ClaudioP
26-03-2008, 14:36
grazie mille.

ma uno dei 2 diversi modi di scrivere (printf e cout) offre dei vantaggi maggiori in un qualche senso rispetto all'altro o sono perfettamente analoghi?

Torav
26-03-2008, 14:37
ups scusami ho fatto confusione, ero convinto chiedessi per c :D
meglio come ti ha detto di fare tomminno!

tomminno
26-03-2008, 14:37
grazie mille.

ma uno dei 2 diversi modi di scrivere (printf e cout) offre dei vantaggi maggiori in un qualche senso rispetto all'altro o sono perfettamente analoghi?

printf è C, cout è C++.

ClaudioP
26-03-2008, 14:43
sapevo che fossero uno relativo al C l'altro al C++. ci sono altre caratteristiche che li differenziano o sono identici?

Torav
26-03-2008, 14:49
beh con la sintassi c++ hai molta più libertà grazie (per esempio) all'overloading degli operatori >> e << che puoi fare, ed è infatti una sintassi orientata agli oggetti al contrario dei vari printf fprintf sprintf ecc ecc :p

71104
26-03-2008, 14:52
beh con la sintassi c++ hai molta più libertà grazie (per esempio) all'overloading degli operatori >> e << che puoi fare, ed è infatti una sintassi orientata agli oggetti al contrario dei vari printf fprintf sprintf ecc ecc :p il paradigma della programmazione orientata agli oggetti non ha nulla a che vedere con la sintassi: è qualcosa che può essere definito esclusivamente in ambito semantico.

le differenze tra C e C++ risiedono semplicemente nelle funzionalità aggiuntive del secondo rispetto al primo, come le classi, i templates, i namespaces, e la STL; e magari anche l'overloading degli operatori.

Torav
26-03-2008, 14:55
il paradigma della programmazione orientata agli oggetti non ha nulla a che vedere con la sintassi: è qualcosa che può essere definito esclusivamente in ambito semantico.

le differenze tra C e C++ risiedono semplicemente nelle funzionalità aggiuntive del secondo rispetto al primo, come le classi, i templates, i namespaces, e la STL; e magari anche l'overloading degli operatori.

argh mi sembra di stare ad un esame, in cui viene pesata ogni parola detta! ma hai più che ragione, mi scuso per lo sfrondone :)