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.40000considerate sono un output valido?
.0verrà data una parte per gli interi? Inoltre, 0non è positivo.
19round a 20ma 0.19round a 0? Perché?