Arrondir un Double à 1 décimale en Kotlin : comment obtenir 0.1 à partir de 0.044999 ?
Bonjour à tous ! Je viens de commencer à apprendre Kotlin pour Android et j'ai rencontré un problème étrange d'arrondi des nombres à virgule flottante.
J'ai une variable de type Double : `val number = 0.044999`. Je dois l'arrondir à une décimale pour obtenir 0.1 (c'est-à-dire un arrondi mathématiquement correct vers le haut, car le chiffre suivant après 0.0 est 4, mais si on regarde le nombre entier, 0.045 donne déjà 0.1 lors de l'arrondi à une décimale).
J'ai essayé d'utiliser `String.format("%.1f", number)`, mais cela donne `0.0`, car format ne regarde que le premier chiffre après la virgule ? Ensuite, j'ai essayé `Math.round(number * 10.0) / 10.0`, mais le résultat est encore `0.0`. Je suis perplexe !
Voici mon code :
```kotlin
fun main() {
val number = 0.044999
val rounded = Math.round(number * 10.0) / 10.0
println(rounded) // Affiche 0.0, mais je veux 0.1
}
```
Je comprends que le problème vient de la représentation binaire des nombres à virgule flottante, mais comment faire alors un arrondi "honnête" ?