के रूप में मैं इसे समझते हैं, आप केवल 'सबसे महत्वपूर्ण' भाग चाहते हैं। ऐसा करने के लिए, अंकों की संख्या प्राप्त करने के लिए floor(log10(abs(n)))
का उपयोग करें और फिर वहां से जाएं। कुछ इस तरह, हो सकता है:
import math
millnames = ['',' Thousand',' Million',' Billion',' Trillion']
def millify(n):
n = float(n)
millidx = max(0,min(len(millnames)-1,
int(math.floor(0 if n == 0 else math.log10(abs(n))/3))))
return '{:.0f}{}'.format(n/10**(3 * millidx), millnames[millidx])
अलग नंबरों का एक समूह के लिए ऊपर समारोह चल रहा है:
for n in (1.23456789 * 10**r for r in range(-2, 19, 1)):
print('%20.1f: %20s' % (n,millify(n)))
0.0: 0
0.1: 0
1.2: 1
12.3: 12
123.5: 123
1234.6: 1 Thousand
12345.7: 12 Thousand
123456.8: 123 Thousand
1234567.9: 1 Million
12345678.9: 12 Million
123456789.0: 123 Million
1234567890.0: 1 Billion
12345678900.0: 12 Billion
123456789000.0: 123 Billion
1234567890000.0: 1 Trillion
12345678900000.0: 12 Trillion
123456789000000.0: 123 Trillion
1234567890000000.0: 1235 Trillion
12345678899999998.0: 12346 Trillion
123456788999999984.0: 123457 Trillion
1234567890000000000.0: 1234568 Trillion
मेरी इच्छा है कि मेरे पास इतना पैसा था। –
क्लिसप स्थापित करें और इसे लिखें: '(प्रारूप टी "~ आर" (पार्स-इंटीजर (रीड-लाइन * मानक-इनपुट *))) फिर 'clisp prettynum.cl 187,000,000,000,000' पर कॉल करने के लिए उपप्रोसेसर का उपयोग करें ... हालांकि मैं बस एक विकल्प के बारे में पूछा http://stackoverflow.com/questions/3158132/is-there-a-python-version-of-lisps-format-r –
['पायथन-बॉलपार्क'] (https://github.com/ debrouwere/पायथन-बॉलपार्क) ओपी के लिए पूछताछ के लिए बिल्कुल डिजाइन किया गया प्रतीत होता है। –