问题:我需要将金额转换为印度货币格式
我的代码:我有以下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()
我的问题:有没有办法让我的currencininIndiaformat功能变得更短、更简洁和干净?/有没有更好的方法来编写我的currencyInIndiaFormat函数?在
注意:我的问题主要基于上述问题的Python
实现。这并不是之前所问的关于将货币兑换成印度货币的问题的重复。
印度货币格式:
例如,这里的数字表示为:
^{pr2}$
您可以按照以下步骤操作。 从pip安装Babel python包
在python脚本中
^{pr2}$输出:
工作太多了。在
其他两种解决方案都不适合我,所以我做了一些技术含量较低的东西:
这不适用于小数。如果需要的话,我建议将小数部分保存到另一个变量中,并在最后将其添加回来。在
相关问题 更多 >
编程相关推荐