Troncare un float senza arrotondarlo

di il
4 risposte

Troncare un float senza arrotondarlo

Salve, sono nuovo del forum e volevo sottoporvi alcune domande;

sto svolgendo degli esercizi per un corso all'università, ed in uno in particolare vorrei che il float che inserisco in ingresso venga visualizzato in uscita senza però che vengano arrotondate le cifre dopo la virgola. Vorrei cioè che venissero solo troncate: 7.12345678--->7.123456 e non 7.123457

Vi posto il codice così magari riuscite a capire meglio.

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

int main() {
	float x;
	cout<<"Inserire un numero di tipo float: ";
	cin>>x;
	cout<<"Il numero inserito diventa: "<<fixed<<setprecision(1)<<x<<endl;
	cout<<"Il numero inserito diventa: "<<fixed<<setprecision(2)<<x<<endl;
	cout<<"Il numero inserito diventa: "<<fixed<<setprecision(3)<<x<<endl;
	cout<<"Il numero inserito diventa: "<<fixed<<setprecision(4)<<x<<endl;
	cout<<"Il numero inserito diventa: "<<fixed<<setprecision(5)<<x<<endl;
	cout<<"Il numero inserito diventa: "<<fixed<<setprecision(6)<<x<<endl;
	return 0;
}
Vi ringrazio in anticipo.

A presto

4 Risposte

  • Re: Troncare un float senza arrotondarlo

    Moltiplichi il valore per 10,100,1000... lo trasformi in intero e poi lo ritrasformi in float e lo dividi per 10,100,1000
  • Re: Troncare un float senza arrotondarlo

    Ti ringrazio, funziona alla perfezione!!
    Posso sapere come mai si utilizza questo procedimento? Non esiste una funzione apposita?
  • Re: Troncare un float senza arrotondarlo

    Posso sapere come mai si utilizza questo procedimento?
    E' la prima cosa che mi è venuta in mente, di sicuro non è l'unico modo prova magari a pensare anche a qualche altro sistema...
    Non esiste una funzione apposita?
    Non lo so se esiste (che io sappia no) ma ad ogni modo potresti scrivere una tua funzione per svolgere questo compito.
  • Re: Troncare un float senza arrotondarlo

    Perfetto!! Grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte