Rounding yang Memuaskan
Anda tahu kapan Anda berada di kelas sains, dan diminta membulatkan ke 2 buah ara, tetapi jawaban Anda adalah 5.2501...
? Anda harus membulatkan tekad 5.3
, tapi itu sangat tidak memuaskan! Dengan membulatkan ke 5.3
, Anda pergi dengan 0,05 keseluruhan, yang merupakan jumlah besar dibandingkan dengan 0,1 (nilai tempat Anda pembulatan ke)! Jadi tolong bantu saya dengan cara yang memuaskan.
Untuk membulatkan dengan cara yang memuaskan, Anda harus membulatkan angka pertama yang Anda temui yang menghasilkan kesalahan yang relatif kecil - kurang dari setengah kesalahan maksimum yang mungkin terjadi saat pembulatan. Pada dasarnya, Anda perlu membulatkan setiap kali Anda menemukan 0, 1, 8, atau 9. Jika itu tidak pernah terjadi, kembalikan input apa adanya. Jangan membulatkan angka nol di depan atau yang lainnya - yang memang tidak memuaskan.
Memasukkan
Nilai string atau float yang mewakili angka desimal non-negatif.
Keluaran
Angka desimal yang sama dibulatkan dengan memuaskan, dalam format string atau float.
Contohnya
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
Ini adalah tantangan kode-golf , jadi kode terpendek menang!
036.40000
dianggap sebagai output yang valid?
.0
bagian akan diberikan untuk bilangan bulat? Juga, 0
tidak positif.
19
putaran untuk 20
tetapi0.19
putaran ke 0
? Mengapa?