राउंडिंग को संतुष्ट करना
आप जानते हैं कि जब आप विज्ञान वर्ग में होते हैं, और 2 सेर अंजीर से गोल करने के लिए कहा जाता है, लेकिन आपका जवाब है 5.2501...
? आपको गोल करना चाहिए 5.3
, लेकिन यह सिर्फ इतना असंतोषजनक है! राउंडिंग द्वारा 5.3
, आप एक संपूर्ण 0.05 द्वारा बंद कर रहे हैं, जो कि 0.1 की तुलना में एक बड़ी राशि है (जिस स्थान का मूल्य आप ले रहे हैं)! इसलिए संतोषजनक तरीके से मेरी मदद करें।
संतोषजनक तरीके से गोल करने के लिए, आपको पहले अंक में गोल करना चाहिए जो कि आप भर में आते हैं, जो अपेक्षाकृत छोटी त्रुटि पैदा करता है - गोलाई में अधिकतम संभव त्रुटि का आधे से भी कम। मूल रूप से, जब भी आप 0, 1, 8, या 9 से मुठभेड़ करते हैं, तो आपको गोल करने की आवश्यकता होती है। यदि ऐसा कभी नहीं होता है, तो इनपुट को उसी रूप में लौटाएं। अग्रणी शून्य या लोगों पर गोल न करें - यह सिर्फ संतोषजनक नहीं लगता है।
इनपुट
एक स्ट्रिंग या फ्लोट मान जो एक nonnegative दशमलव संख्या का प्रतिनिधित्व करता है।
उत्पादन
एक ही दशमलव संख्या संतोषजनक रूप से, स्ट्रिंग या फ्लोट प्रारूप में गोल।
उदाहरण
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
यह एक कोड-गोल्फ चुनौती है, इसलिए सबसे छोटा कोड जीतता है!
036.40000
वैध आउटपुट माना जाता है?
.0
पूर्णांक के लिए एक हिस्सा दिया जाएगा? इसके अलावा, 0
सकारात्मक नहीं है।
19
गोल 20
लेकिन 0.19
गोल करने के लिए 0
? क्यों?