3.6 के रूप में (शायद थोड़ा पुराने 3.x के साथ भी काम करता है), यह मेरा समाधान है:
import locale
locale.setlocale(locale.LC_ALL, '')
def number_format(n, dec_precision=4):
precision = len(str(round(n))) + dec_precision
return format(float(n), f'.{precision}n')
precisionगणना का उद्देश्य यह सुनिश्चित करना है कि हमारे पास वैज्ञानिक संकेतन से बाहर रहने के लिए पर्याप्त सटीकता है (डिफ़ॉल्ट परिशुद्धता अभी भी 6 है)।
dec_precisionतर्क दशमलव अंक के लिए उपयोग करने के लिए अतिरिक्त परिशुद्धता कहते हैं। चूंकि यह nप्रारूप का उपयोग करता है, इसलिए कोई तुच्छ शून्य जोड़ा नहीं जाएगा ( fप्रारूपों के विपरीत )। nदशमलव के बिना पहले से ही पूर्णांक पूर्णांक प्रदान करने का भी ध्यान रखेगा।
nfloatइनपुट की आवश्यकता है, इस प्रकार कलाकारों।