Voglio eseguire un'operazione come questa: se i numeri float indicati sono come 1.0, 2.0, 3.0, voglio salvarli nel database come numero intero (1,2,3), se sono come 1.1, 2.1, 3.44, li salvo come float. qual è la migliore soluzione per questo problema usando java? Il campo corrispondente nel database è il tipo di varchar.Java converte float in intero
risposta
Basta provare int i = (int) f;
.
MODIFICA: Vedo il punto nella domanda. Questo codice potrebbe funzionare:
int i = (int) f;
String valToStore = (i == f) ? String.valueOf(i) : String.valueOf(f);
Questo convertirà tutti i valori float in ints, che non è proprio quello che la domanda originale stava chiedendo. –
E per quanto riguarda la stringa float, amico? tu converti un float in int. questo non è quello che voglio. – Sawyer
In realtà funziona bene: non converte tutti i valori float in ints. Memorizza il valore int in "i" solo per il confronto con il valore float. Se è lo stesso (vale a dire termina con .0), restituisce "i", altrimenti restituisce il valore originale come stringa ... @Tony, valToStore è una stringa. Questo è quello che hai chiesto ... – Philippe
String result = "0";
if (floatVar == Math.floor(floatVar)) {
result = Integer.toString((int) floatVar);
} else {
result = Float.toString(floatVar);
}
controlli IF-clausola se il numero è un numero intero - cioè se è uguale al risultato di arrotondamento giù al numero intero più vicino.
Ma questo è davvero un requisito molto strano, e forse dovresti riconsiderare la necessità di una cosa del genere.
Non sono sicuro questa è la soluzione migliore, ma si può provare a scrivere un metodo come questo:
String convertToString(Float f) {
if (f.toString().endsWith(".0"))
return f.intValue().toString();
else
return f.toString();
}
Sembra che si desidera salvare Galleggianti senza numeri di trascinamento come interi, mentre il risparmio di quelli con trailing significativa numeri come galleggianti. Avrei preferito basta salvare il tutto come Float al DB, ma è la tua domanda ecco la mia risposta:
/**
* Method to determine if trailing numbers are significant or not. Significant
* here means larger than 0
*
* @param fFloat
* @return
*/
public static boolean isTrailingSignificant(Float fFloat)
{
int iConvertedFloat = fFloat.intValue();// this drops trailing numbers
// checks if difference is 0
return ((fFloat - iConvertedFloat) > 0);
}
Ecco come si può usare questo metodo:
Number oNumToSave = null;
if (isTrailingSignificant(fFloat))
{
// save float value as is
oNumToSave = fFloat;
}
else
{
// save as int
oNumToSave = fFloat.intValue();// drops trailing numbers
}
Dopo di che, si può eseguire l'operazione del database utilizzando la variabile oNumToSave.
- 1. mssql converte varchar in float
- 2. Convertire un numero intero in un numero float in Golang
- 3. Converte rigorosamente stringa in intero (o nullo)
- 4. Cosa succede quando si converte double (o float) in ints?
- 5. Java: dovrei usare float o float?
- 6. Converti float in intero in Rust
- 7. SSE: converti numero intero short in float
- 8. Come si converte Int/Decimal in float in C#?
- 9. Converte una stringa in intero con decimale in Python
- 10. Converte l'indirizzo MAC intero in stringa in Javascript
- 11. Go: converte stringhe in array in numero intero
- 12. float vs double (in Java)
- 13. Inserimento $ in float formattato java
- 14. Converti/Quantizza intervallo float su intero Intervallo
- 15. iOS-Charts Float a intero asseY
- 16. Come si converte un numero intero in un tipo enumerato?
- 17. Come convertire un intero in float in Delphi?
- 18. Come convertire il valore float in intero in php?
- 19. Qual è la differenza tra Float e float in java?
- 20. Java converti Arrayylist <Float> in float []
- 21. Java: double vs float
- 22. java: converte stringa binary in int
- 23. Java: Converti byte in intero
- 24. Conversione da double a float in Java
- 25. int vs float efficienza aritmetica in Java
- 26. Perché non c'è ceil (float) in Java?
- 27. Java raytracing float vs double
- 28. Java Float to Long Typecast
- 29. Java - Come verificare se una divisione è un intero o un float?
- 30. Java: intero uguale a ==
Questo è davvero confuso; stai chiedendo come usare Float.toString (val)? – Will
Sei sicuro che i numeri in virgola mobile siano davvero adatti al tuo dominio problematico? Se vuoi precisione, dovresti usare BigDecimal –