Avatar ·

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" ?