Arredondamento satisfatório
Você sabe quando está na aula de ciências e pediu para arredondar para 2 sig figs, mas a sua resposta é 5.2501...
? Você deve arredondar para 5.3
, mas isso é tão insatisfatório! Ao arredondar para 5.3
, você sai com 0,05, o que é uma grande quantia em comparação com 0,1 (o valor do local para o qual você está arredondando)! Então me ajude de uma maneira satisfatória.
Para arredondar de maneira satisfatória, você deve arredondar no primeiro dígito que encontrar, que produz um erro relativamente pequeno - menos da metade do erro máximo possível ao arredondar. Basicamente, você precisa arredondar sempre que encontrar 0, 1, 8 ou 9. Se isso nunca acontecer, retorne a entrada como está. Não use zeros à esquerda ou zeros - isso simplesmente não parece satisfatório.
Entrada
Um valor de sequência ou flutuante que representa um número decimal não negativo.
Resultado
O mesmo número decimal arredondado satisfatoriamente, no formato string ou float.
Exemplos
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
Este é um desafio do código-golfe , pelo que o código mais curto vence!
036.40000
consideradas uma saída válida?
.0
parte será dada para números inteiros? Além disso, 0
não é positivo.
19
volta para, 20
mas 0.19
volta para 0
? Por quê?