Arrondi satisfaisant
Vous savez quand vous êtes en cours de science et que vous avez demandé d'arrondir à 2 figues sig, mais votre réponse est 5.2501...
? Vous devriez arrondir à 5.3
, mais c'est tellement insatisfaisant! En arrondissant à5.3
, vous avez un total de 0,05, ce qui est une grande quantité par rapport à 0,1 (la valeur de position à laquelle vous arrondissez)! Alors aidez-moi à tourner de manière satisfaisante.
Pour arrondir de manière satisfaisante, vous devez arrondir au premier chiffre que vous rencontrez, ce qui produit une erreur relativement faible - moins de la moitié de l'erreur maximale possible lors de l'arrondi. Fondamentalement, vous devez arrondir chaque fois que vous rencontrez 0, 1, 8 ou 9. Si cela ne se produit jamais, renvoyez l'entrée telle quelle. N'arrondissez pas les zéros ou les uns au début - cela ne semble tout simplement pas satisfaisant.
Contribution
Une chaîne ou une valeur flottante qui représente un nombre décimal non négatif.
Production
Le même nombre décimal arrondi de manière satisfaisante, au format chaîne ou flottant.
Exemples
Input -> Output
0 -> 0
0.5 -> 0.5
0.19 -> 0
0.8 -> 1
5.64511 -> 5.645
18.913 -> 20
88.913 -> 100
36.38299 -> 36.4
621 -> 620
803.22 -> 1000
547.4726 -> 547.4726
C'est un défi de code-golf , donc le code le plus court gagne!
036.40000
considérées comme une sortie valide?
.0
partie sera donnée pour les entiers? De plus, ce 0
n'est pas positif.
19
arrondit à 20
mais 0.19
arrondit à 0
? Pourquoi?