View Full Version : [JAVA] Estarre parte decimale da un float
Salve,
l'ogetto è molto esplicativo, come posso fare???
Grazie
Andrea
non so niente di java, ma la cosa più stupida che mi è venuta in mente, che funziona su qualsiasi linguaggio: sottrai 1 finché il numero non è minore di 1...
altrimenti fai il numero meno il numero convertito a intero. ma non so se nella conversione effettua arrotondamenti per eccesso...
Salve,
l'ogetto è molto esplicativo, come posso fare???
Grazie
AndreaSi può fare:
float num = 123.456f;
float dec = num - (float) Math.floor (num);
non so niente di java, ma la cosa più stupida che mi è venuta in mente, che funziona su qualsiasi linguaggio: sottrai 1 finché il numero non è minore di 1...
altrimenti fai il numero meno il numero convertito a intero. ma non so se nella conversione effettua arrotondamenti per eccesso...
E' Vero!!!
Alcune volte mi meraviglio di quanto possa essere pollo!!
Ti ringrazio!
Si può fare:
float num = 123.456f;
float dec = num - (float) Math.floor (num);
però, secondo la documentazione, double floor(double a) Returns the largest (closest to positive infinity) double value that is less than or equal to the argument and is equal to a mathematical integer.
quindi, c'è rischio che il risultato della sottrazione abbia ancora una parte intera, non potrebbe funzionare meglio:
double risultatoFloor;
while((risultatoFloor=Math.floor(num))!=0)
num-=(float)risultatoFloor;?
però, secondo la documentazione,
quindi, c'è rischio che il risultato della sottrazione abbia ancora una parte intera, non potrebbe funzionare meglio:
double risultatoFloor;
while((risultatoFloor=Math.floor(num))!=0)
num-=(float)risultatoFloor;?No. Math.floor() in pratica tronca i decimali. Dato in input 123.456, ritorna 123.0. Quindi sottraendolo al numero iniziale, ottieni solo i decimali, come voluto.
e tipo fare:
float parteDecimale(float num){
return num-(int)num;
}
?
da quello che ho letto su thinking in java trasformando un float in un int si ottiene la parte intera, anche se il float è 4.9999999, giusto? questo però varrebbe solo fino a che num è <= Integer.MAX_VALUE...
e tipo fare:
float parteDecimale(float num){
return num-(int)num;
}
?
da quello che ho letto su thinking in java trasformando un float in un int si ottiene la parte intera, anche se il float è 4.9999999, giusto? questo però varrebbe solo fino a che num è <= Integer.MAX_VALUE...Certo, anche il cast tronca i decimali. Solo che poi deve riconvertirlo in float per fare la differenza. Beh, anche usando Math.floor deve fare delle conversioni.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.