zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
ciao...mi potete dare una mano x favore??
volevo solo sapere come si fa a mettere a delle varibili (vettori ) dikiarata di tipo float { float x[20], y[20] } ke devono avere al massimo 4 cifre dopo la virgola....
questi vettori assumono i valori non all'inizio del programma..ma con l'esecuzione di questo; 2 sono inseriti dall'utente , altri 6 sono calcolati dal programma, utilizzando quei 2 inseriti prima...come fare?
grazie
Ultima modifica effettuata da zubizarreta il 01/02/2007 alle 15:55 |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
scusami ma non capisco bene il problema, vuoi verificare che ci siano solo 4 cifre decimali?
|
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
no...; voglio ke ci siano per forza solo 4 cifre dopo la virgola......ora è tutto kiaro?
Ultima modifica effettuata da zubizarreta il 01/02/2007 alle 17:10 |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
quindi vorresti fare:
Programma: Inserire numero float:
Utente: 12,34557428
Programma: Errore, reinserire
Programma: Inserire numero float:
Utente: 12,34557428
Programma: ok, ignoro 7428
io moltiplicherei il numero inserito per 10'000 e se castato ad int è uguale a non castato a int (quindi restando float) significa che non avanzano cifre decimali e ne aveva proprio 4, in alternativa richiedi il numero (il tutto con un do...while)
Come implementare l'altra alternativa ora non mi viene.
ciao, dimmi se ancora non ho capito
|
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
veramente io volevo fare così: inserire dei numeri (molto probabilmente questi sono interi o al massimo con 1/2 cifre dopo la virgola)..
con questi numeri devo fare delle operazioni (moltiplicazioni e divisioni) il cui risultato voglio ke sia un numero che non abbia più di 4 cifre decimali....
programma: inserire numero
utente; inserisce (puo essere intero o float)
programma fa i calcoli e rilascia in output dei numeri con massimo 4 cifre dopo la virgola..*
* 4 cifre solo se il numero le superea le 4 cifre altrimenti solo quelle ke ha....
ESEMPIO
variabiile= 1,2365489 in OUTPUT voglio: 1,2366 (approssimato);
variabile = 1,23 in OUTPUT 1,23
ok? Ultima modifica effettuata da zubizarreta il 01/02/2007 alle 20:45 |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
ahhhhhhhhhhhhhh, sisi ora ho capito, formattare l'output dei numeri con la virgola, allora è facilissimo:
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <iomanip> using namespace std; int main() { cout.precision(5); cout << 1.12345678 << endl; return 0; }
|
viene fuori: 1.1235
se vuoi che la precisione valga solo per quel cout devi usare setprecision:
cout << setprecision(5) << numero << endl
ciao
Ultima modifica effettuata da netarrow il 02/02/2007 alle 16:50 |
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
ok..grazie
|
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
veramente ...non è tutto ok...ti spiego..
io ho risolto momentaneamente facendo così : printf("%.4f", numero);
facendo così tutti i numeri vengono messi con 4 difre dopo la virgola...; xò anke quelli ke sono interi o ke anno meno di 4 cifre dopo la virgola vengono messi con 4 cifre dopo la virgola e questo nn mi va bene...
se c'è un modo per lasciare questi numeri così come sono (con meno di 4 cifre dopo la virgola)..me lo dici per favore (se è fatto con la COUT è meglio xke io uso quasi sempre quello.) grazie...
poi un altra cosa..sempre nello stesso programma c'è una somma algebrica ke mi dà 0 come risultato, e il programma me lo segna in OUTPUT come " -0.0000"; quì il problema è togliere il meno dallo 0, ke è un numero neutro.
grazie ciao
Ultima modifica effettuata da zubizarreta il 02/02/2007 alle 19:04 |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
per lo 0 potresti fare un cast a unsigned int abs di cmath che trova il valore assoluto, per le altre tecniche di formattazione non saprei, gli header che devi approfondire sono iomanip iostream e magari riutilizzi la vecchia printf che in C++ sta in cstdio.
ovviamente sempre usando il namespace std;
Ultima modifica effettuata da netarrow il 03/02/2007 alle 16:03 |
|