gpt4 book ai didi

python - 在 Python 中将金额转换为印度符号

转载 作者:行者123 更新时间:2023-12-04 05:46:35 35 4
gpt4 key购买 nike

问题:我需要将金额转换为印度货币格式

我的代码:我有以下 Python实现:

import decimal
def currencyInIndiaFormat(n):
d = decimal.Decimal(str(n))
if d.as_tuple().exponent < -2:
s = str(n)
else:
s = '{0:.2f}'.format(n)
l = len(s)
i = l-1;
res = ''
flag = 0
k = 0
while i>=0:
if flag==0:
res = res + s[i]
if s[i]=='.':
flag = 1
elif flag==1:
k = k + 1
res = res + s[i]
if k==3 and i-1>=0:
res = res + ','
flag = 2
k = 0
else:
k = k + 1
res = res + s[i]
if k==2 and i-1>=0:
res = res + ','
flag = 2
k = 0
i = i - 1

return res[::-1]

def main():
n = 100.52
print "INR " + currencyInIndiaFormat(n) # INR 100.52
n = 1000.108
print "INR " + currencyInIndiaFormat(n) # INR 1,000.108
n = 1200000
print "INR " + currencyInIndiaFormat(n) # INR 12,00,000.00

main()

我的问题:有没有办法让我的currencyInIndiaFormat 函数 更短、更简洁、更干净 ?/有没有更好的方法来编写我的currencyInIndiaFormat 函数?

注:我的问题主要是基于 Python上述问题的实现。它与先前提出的有关将货币转换为印度格式的问题不同。

印度货币格式:

例如,这里的数字表示为:
1
10
100
1,000
10,000
1,00,000
10,00,000
1,00,00,000
10,00,00,000

引用 Indian Numbering System

最佳答案

太多的工作。

>>> import locale
>>> locale.setlocale(locale.LC_MONETARY, 'en_IN')
'en_IN'
>>> print(locale.currency(100.52, grouping=True))
₹ 100.52
>>> print(locale.currency(1000.108, grouping=True))
₹ 1,000.11
>>> print(locale.currency(1200000, grouping=True))
₹ 12,00,000.00

关于python - 在 Python 中将金额转换为印度符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951552/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com