Oppure

Loading
01/02/07 14:50
zubizarreta
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 01/02/07 14:55
aaa
01/02/07 15:17
netarrow
scusami ma non capisco bene il problema, vuoi verificare che ci siano solo 4 cifre decimali?
aaa
01/02/07 16:10
zubizarreta
no...; voglio ke ci siano per forza solo 4 cifre dopo la virgola......ora è tutto kiaro?
Ultima modifica effettuata da zubizarreta 01/02/07 16:10
aaa
01/02/07 19:04
netarrow
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 :D
aaa
01/02/07 19:43
zubizarreta
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 01/02/07 19:45
aaa
02/02/07 15:41
netarrow
ahhhhhhhhhhhhhh, sisi ora ho capito, formattare l'output dei numeri con la virgola, allora è facilissimo:

#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 02/02/07 15:50
aaa
02/02/07 16:04
zubizarreta
ok..grazie:k:
aaa
02/02/07 18:02
zubizarreta
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 02/02/07 18:04
aaa