[ GMC @ 08.12.2005. 15:41 ] @
cao

Da li bi mi neko mogao pomoci oko toga kako da neki double broj (recimo 324.5432344) podjelim na clanove. U stvari moram uraditi neko zaokruzivanje ovog broja na onoliko decimala koliko je korisnik unjeo , pa sve bi ono bilo super kad bi se uvijek zaokruzivalo na isti broj decimala (pa ljepo onda npr %.3lf) ... eh posto ja ne znam da li se moze koristi varijabla u ovoj printf naredbi , umjesto ove 3 recimo da stoji varijabla sa brojem na koliko treba zaokruziti , ja sam odlucio da to probam spremit u polje. Ali i tu imam problem, ne znam kako da u recimo polje ime_polja[12] stavim od 0-12 posebno svaku decimalu iz mog double broja. Tj znam kako staviti u polje ali ne znam kako da matematicki izdvojim svaki put po drugu znamenku u for petlji...


Zahvalan na bilo kakvoj pomoci....
[ Goran Arandjelovic @ 08.12.2005. 16:10 ] @
Evo kako bi to mogao da rešiš...bez korišćenja formatiranja... Inače, ovo ti je C++, nije C

Code:

#include <iostream>
#include <cmath>
using namespace std;

int main(int argc, char *argv[])
{
    double num;
    int dec;
    
    cout << "Unesi broj: "; cin >> num;
    cout << "Koliko decimala: "; cin >> dec;
    
    num = (int(n*pow(10.0, dec))) / pow(10.0,dec)
    cout << num;
}


Pozdrav.

[Ovu poruku je menjao Goran Arandjelovic dana 08.12.2005. u 21:15 GMT+1]
[ Nedeljko @ 09.12.2005. 08:10 ] @
Evo ti rešenja u C-u za prikazivanje ne više od 9 decimala. Lako se modifikuje tako da radi i za slučaj većeg broja decimala.
Code:

#include <stdio.h>

int main()
{
    double broj;
    int dec;
    char format[] = "\n%.3lf\n";
    
    printf("Unesi broj : ");
    scanf("%lf", &broj);
    printf("Unesi broj decimalnih mesta : ");
    scanf("%d", &dec);
    format[3] = '0'+dec;
    printf(format, broj);
    
    return 0;
}



C++ kod za proizvoljan broj decimalnih mesta bi izgledao ovako.

Code:

#include <iostream>

using namespace std;


int main()
{
    int stara_tacnost;
    double broj;
    int tacnost;
    
    cout << "Unesi broj : ";
    cin >> broj;
    cout << "Unesi tacnost : ";
    cin >> tacnost;
    stara_tacnost = cout.precision();
    cout.precision(tacnost);
    cout << broj << "\n";
    cout.precision(stara_tacnost);
    
    return 0;
}



[Ovu poruku je menjao Nedeljko dana 09.12.2005. u 09:05 GMT+1]