Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - vettori di tipo float
Forum - C/C++ - vettori di tipo float

Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 15:50
Giovedì, 01/02/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
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 16:17
Giovedì, 01/02/2007
scusami ma non capisco bene il problema, vuoi verificare che ci siano solo 4 cifre decimali?

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 17:10
Giovedì, 01/02/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
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 20:04
Giovedì, 01/02/2007
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

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 20:43
Giovedì, 01/02/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
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 16:41
Venerdì, 02/02/2007
ahhhhhhhhhhhhhh, sisi ora ho capito, formattare l'output dei numeri con la virgola, allora è facilissimo:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. cout.precision(5);
  8. cout << 1.12345678 << endl;
  9. return 0;
  10. }



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
PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 17:04
Venerdì, 02/02/2007
ok..grazie:k:

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 19:02
Venerdì, 02/02/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
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 16:03
Sabato, 03/02/2007
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
PM Quote