Arrotondamento soddisfacente
Sai quando sei in classe di scienze e hai chiesto di arrotondare a 2 sig fichi, ma la tua risposta è 5.2501...
? Dovresti arrotondare a 5.3
, ma è così insoddisfacente! Arrotondando a 5.3
, si ottiene un totale di 0,05, che è una grande quantità rispetto a 0,1 (il valore del posto a cui si sta arrotondando)! Quindi aiutami a arrotondare in modo soddisfacente.
Per arrotondare in modo soddisfacente, è necessario arrotondare alla prima cifra che si incontra che produce un errore relativamente piccolo - meno della metà dell'errore massimo possibile durante l'arrotondamento. Fondamentalmente, devi arrotondare ogni volta che incontri 0, 1, 8 o 9. Se ciò non accade, restituisci l'input così com'è. Non arrotondare a zero o a quelli iniziali - questo non sembra soddisfacente.
Ingresso
Un valore stringa o float che rappresenta un numero decimale non negativo.
Produzione
Lo stesso numero decimale arrotondato in modo soddisfacente, in formato stringa o float.
Esempi
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
Questa è una sfida di code-golf , quindi vince il codice più corto!
036.40000
considerate sono un output valido?
.0
verrà data una parte per gli interi? Inoltre, 0
non è positivo.
19
round a 20
ma 0.19
round a 0
? Perché?