Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

broj decimala pri ispisu sa cout

[es] :: C/C++ programiranje :: broj decimala pri ispisu sa cout

[ Pregleda: 2254 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ivan.harden
ivan harden

Član broj: 103651
Poruke: 1
*.cmu.carnet.hr.



Profil

icon broj decimala pri ispisu sa cout02.08.2006. u 23:38 - pre 215 meseci
Ovo ce vjerojatno uci u kategoriju jednog od najglupljih pitanja :)
Console app., vc++6

Zasto bez obzira na tip deklariranog podatka (float, double, long double)
se uvijek sa npr. "cout << x"
ispisuje broj sa sveukupno 8 (7 zapravo, 8sma je predznak) decimala.
Kako natjerati da ispise veci dio decimala ?
Isto tako, kolio decimala cpp (odnosno, primjerice vc++6) koristi pri racunanju
s odredenim tipom podataka (ako nekome nesto znaci double precision :) ?

Ovo mi stvara dosta problema (svi koji su ikada radili u fortranu neke numericke proracune
vjerojatno ce znati zasto).

Unaprijed zahvaljujem svim dobrim ljudima na odgovorima

pozdrav
ivan
 
Odgovor na temu

nikoladsp
nikola radovanovic
trenutno-developer
novi sad

Član broj: 5455
Poruke: 193
*.ns.ac.yu.



Profil

icon Re: broj decimala pri ispisu sa cout07.08.2006. u 08:08 - pre 215 meseci
ovo ti je primer iz MSDN-a:

Code:

#include <iostream>
#include <iomanip>

using namespace std;

const float d1 = 1.23456789f;
const float d2 = 12.3456789f;
const float d3 = 123.456789f;
const float d4 = 1234.56789f;
const float d5 = 12345.6789f;
const long  l1 = 16;
const long  l2 = 256;
const long  l3 = 1024;
const long  l4 = 4096;
const long  l5 = 65536;
int         base = 10;

void DisplayDefault( )
{
   cout << endl << "default display" << endl;
   cout << "d1 = " << d1 << endl;
   cout << "d2 = " << d2 << endl;
   cout << "d3 = " << d3 << endl;
   cout << "d4 = " << d4 << endl;
   cout << "d5 = " << d5 << endl;
}

void DisplayWidth( int n )
{
   cout << endl << "fixed width display set to " << n << ".\n";
   cout << "d1 = " << setw(n) << d1 << endl;
   cout << "d2 = " << setw(n) << d2 << endl;
   cout << "d3 = " << setw(n) << d3 << endl;
   cout << "d4 = " << setw(n) << d4 << endl;
   cout << "d5 = " << setw(n) << d5 << endl;
}

void DisplayLongs( )
{
   cout << setbase(10);
   cout << endl << "setbase(" << base << ")" << endl;
   cout << setbase(base);
   cout << "l1 = " << l1 << endl;
   cout << "l2 = " << l2 << endl;
   cout << "l3 = " << l3 << endl;
   cout << "l4 = " << l4 << endl;
   cout << "l5 = " << l5 << endl;
}

int main() {

    DisplayDefault( );

    cout << endl << "setprecision(" << 3 << ")" << setprecision(3);
    DisplayDefault( );

    cout << endl << "setprecision(" << 12 << ")" << setprecision(12);
    DisplayDefault( );

    cout << setiosflags(ios_base::scientific);
    cout << endl << "setiosflags(" << ios_base::scientific << ")";
    DisplayDefault( );

    cout << resetiosflags(ios_base::scientific);
    cout << endl << "resetiosflags(" << ios_base::scientific << ")";
    DisplayDefault( );

    cout << endl << "setfill('" << 'S' << "')" << setfill('S');
    DisplayWidth(15);
    DisplayDefault( );

    cout << endl << "setfill('" << ' ' << "')" << setfill(' ');
    DisplayWidth(15);
    DisplayDefault( );

    cout << endl << "setprecision(" << 8 << ")" << setprecision(8);
    DisplayWidth(10);
    DisplayDefault( );

    base = 16;
    DisplayLongs( );

    base = 8;
    DisplayLongs( );

    base = 10;
    DisplayLongs( );

    return 0;
}


nisam siguran dali sam u pravu ali posto je ispis na konzoli spora operacija(neki tvrde i sporija od upisa u fajl-to nisam proverio ali mi se cini da nije daleko od istine...) pa se neke cifre ne prikazuju zbog ustede.ovaj primer ti pokazuje kako da to promenis,ali interno mislim da to nema veze,jer kompajler ce raditi sa svim ciframa. sto se tice broja decimala koje se koriste za tipove,to u nacelu zavisi od arhitekture racunara,najbolje da proveris kod sebe sa sizeof(float), sizeof(double), itd. i vidis tacno sta se desava.
ja sam panker sa diplomom kod moje mame...
 
Odgovor na temu

[es] :: C/C++ programiranje :: broj decimala pri ispisu sa cout

[ Pregleda: 2254 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.