python123货币转换器_Python之美元大写转换器

Python之美元大写转换器

网上找了好久没找到python版本的,照着js抄了一下。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

__author__ = "leo"

__time__ = "2018-10-11"

'''

http://www.52ij.com/zhuanhuanqi/meiyuandaxie/shuzi.js

改编

'''

import math

arr1 = ("", " thousand", " million", " billion")

arr2 = ("zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety")

arr3 = ("zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine")

arr4 = ("ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen")

def English(a):

strRet = ""

if (len(a) == 3 and a[0:3] != "000"):

if a[0:1] != "0":

strRet = strRet + arr3[int(a[0:1])] + " hundred"

if a[1:2] != "00":

strRet = strRet + " and "

a = a[1:]

if len(a) == 2:

if a[0:1] == "0":

a = a[1:]

elif a[0:1] == "1":

strRet = strRet + arr4[int(a[1:2])]

else:

strRet = strRet + arr2[int(a[0:1])]

if a[1:1] != "0":

strRet = strRet + "-"

a = a[1:]

if (len(a) == 1 and a[0:1] != "0"):

strRet = strRet + arr3[int(a[0:1])]

return strRet

def doToEn(a):

b = len(a)

f, h = 0, 0

g = ""

e = math.ceil(b / 3)

k = b - e * 3

g = ""

for f in range(k, b, 3):

h += 1

if f >= 0:

num3 = a[f:f + 3]

else:

num3 = a[0:k + 3]

strEng = English(num3)

if strEng != "":

if g != "":

g += ","

g += English(num3) + arr1[e - h]

return "U.S. DOLLARS " + g.upper() + " ONLY"

def doToEnWuxiaoshudian(a):

b = len(a)

f, h = 0, 0

g = ""

e = math.ceil(b / 3)

k = b - e * 3

g = ""

for f in range(k, b, 3):

h += 1

if f >= 0:

num3 = a[f:f + 3]

else:

num3 = a[0:k + 3]

strEng = English(num3)

if strEng != "":

if g != "":

g = g + ","

g = g + English(num3) + arr1[e - h]

return "U.S. DOLLARS " + g.upper()

def doToEnYouxiaoshudian(a):

b = len(a)

f, h = 0, 0

g = ""

e = math.ceil(b / 3)

k = b - e * 3

g = ""

for f in range(k, b, 3):

h += 1

if f >= 0:

num3 = a[f:f + 3]

else:

num3 = a[0:k + 3]

strEng = English(num3)

if strEng != "":

if g != "":

g = g + ","

g = g + English(num3) + arr1[e - h]

return "CENTS " + g.upper() + " ONLY"

if __name__ == '__main__':

number = '1234.56'

if str.find(number, '.') != -1:

# 有小数点

aaaaa = number.split(".")[0]

bbbbb = number.split(".")[1]

ccccc = doToEnWuxiaoshudian(aaaaa)

ddddd = ""

if len(bbbbb) > 2:

print("请精确到小数点后两位!如:6324.38")

else:

ddddd = doToEnYouxiaoshudian(bbbbb)

result = ccccc + " AND " + ddddd

else:

result = doToEn(number)

print(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值