Come regola generale, non è possibile specificare il numero di cifre dopo la punto decimale per un numero in virgola mobile. I tipi di dati a virgola mobile memorizzano l'approssimazione a virgola mobile più vicina a qualsiasi valore dato. È improbabile che l'approssimazione a virgola mobile più vicina abbia il numero di cifre che si desidera. Sebbene tu possa essere in grado di sopprimere ogni cifra dopo la terza, questo cambierà solo l'aspetto del valore, non il valore stesso.
I numeri interi sono una storia diversa. Un numero intero, memorizzato, convertito o convertito in un tipo di dati a virgola mobile, verrà memorizzato esattamente su un ampio intervallo. I tipi di dati a virgola mobile non devono memorizzare unità frazionali per i numeri interi.
Io suggerirei, però che la prassi migliore per voi è quello di
- evitare di proiettare interi in virgola mobile, se non hai bisogno di unità frazionate, o
- interi del cast in decimale o numerico se si do sono necessarie unità frazionali o
- gestire i problemi di visualizzazione interamente nel codice dell'applicazione.
fonte
2012-06-20 19:43:59
Si noti che se si utilizza float (n) per alcuni n oltre 24 o 53, viene arrotondato fino a 24 o 53 – Bort