
1 Light3 2017 年 9 月 6 日 |
2 xfspace 2017 年 9 月 6 日 via Android 数字前加个“大写” 大写 0 大写 1 没毛病 |
3 Famio 2017 年 9 月 6 日 上古:<big>1234567890</big> |
4 Sanko 2017 年 9 月 6 日 via Android 记得给二楼转一下电费 顺带给我发一下流量费 |
5 zonyitoo 2017 年 9 月 6 日 自己写一个到底有多难? |
6 misaka19000 2017 年 9 月 6 日 via Android 赔我点进来的流量费 |
7 asj 2017 年 9 月 6 日 这个自己写写也就一两个小时吧 |
8 maplerecall 2017 年 9 月 6 日 via Android @asj 这个很简单吧,十分钟就够了… |
9 yuanfnadi 2017 年 9 月 6 日 这种普遍的需求,git 上任何语言肯定有轮子。 |
10 debuggerx 2017 年 9 月 6 日 当年自学 java 的笔记…… 虽然早就不写 java 了,这个小本子却总是习惯性地装在包里。。。 |
11 0ZXYDDu796nVCFxq 2017 年 9 月 6 日 via iPhone 提这需求不是很正常吗? 再说调个轮子也就两行代码 |
12 jianleer 2017 年 9 月 6 日 |
13 jianleer 2017 年 9 月 6 日 看错了,以为是日常使用,请忽略楼上截图 |
14 ipconfiger 2017 年 9 月 6 日 大写应该是 拾玖 才对吧 |
15 kslr 2017 年 9 月 6 日 arr [ 0 = 零 1 = 壹 2 = 贰 3 = 叁 ] 第 1 天 第 arr[1]天 |
17 8Cangtou 2017 年 9 月 6 日 reduce~~~~map~~~~ |
18 silymore 2017 年 9 月 6 日 via iPhone 可以来个 web api |
19 ipconfiger 2017 年 9 月 6 日 这个单行搞不出来, 就算你憋着搞出来了, 一是无法容错, 二是无法调试, 三是没有可读性 所以一点实用价值也没有 |
20 AlisterTT 2017 年 9 月 6 日 alfred 有个 workflow 有这功能的,你可以参考一下 https://github.com/yourtion/Alfred_NumToCny |
21 ShiHou 2017 年 9 月 6 日 <script src="https://gist.github.com/Lyken17/d6c3acd8f6a13a3ef97dc7f820300904.js"></script> |
22 debuggerx 2017 年 9 月 6 日 @debuggerx 只记了记不住的正则替换部分,完整方法和测试如下: public class Int2Big { static String int2big(int src) { final String num[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; final String unit[] = {"圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"}; String dst = ""; int count = 0; while (src > 0) { dst = (num[src % 10] + unit[count]) + dst; src = src / 10; count++; } return dst.replaceAll("零[仟佰拾]", "零").replaceAll("零+万", "万") .replaceAll("零+亿", "亿").replaceAll("亿万", "亿零") .replaceAll("零+", "零").replaceAll("零圆", "圆"); } public static void main(String[] args) { System.out.println(int2big(123004506)); //-->壹亿贰仟叁佰万肆仟伍佰零陆圆 System.out.println(int2big(6523464)); //-->陆佰伍拾贰万叁仟肆佰陆拾肆圆 System.out.println(int2big(1001000100));//-->壹拾亿零壹佰万零壹佰圆 System.out.println(int2big(808)); //-->捌佰零捌圆 } } |
23 haohaozaici 2017 年 9 月 6 日 |
24 haohaozaici 2017 年 9 月 6 日 |
25 BlackBerry 2017 年 9 月 6 日 0 零 |
26 ipconfiger 2017 年 9 月 6 日 Python 一行的实现方式 之一: "".join(list(reversed(["%s%s" % (["", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"][int(list(reversed(seq))[idx])], unit) for idx, unit in enumerate(reversed(reduce(list.__add__, [ ["仟", "佰", "拾", big_unit] for big_unit in ["兆", "亿", "万", ""]]))) if idx<len(seq)]))) 能实现千兆以下数字的大写转换 But 并没有什么卵用, 为了实现一行写下, 牺牲了效率, 这是其一, 可读性差, 这是其二, 且, 对于 19 => 拾玖 这种省略转换, 并不支持, 会转换成 壹拾玖 所以, 不要这么干 |
27 mengyaoss77 2017 年 9 月 6 日 @ipconfiger #26 对于发票上面写大写的话 好像 19 就需要写成 一十九吧 |
28 wenzhoou 2017 年 9 月 6 日 via Android 19 转成 十九 优雅还是 一十九 优雅。119 呢? |
29 ipconfiger 2017 年 9 月 6 日 @mengyaoss77 还有别的问题, 比如中间全是 0 的时候省略的问题 |
30 ipconfiger 2017 年 9 月 6 日 再改一版: lambda seq:"".join(list(reversed([("%s%s" % (["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"][int(list(reversed(seq))[idx])], unit)) if idx>0 or int(list(reversed(seq))[1]) else ("零%s" % ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"][int(list(reversed(seq))[idx])]) for idx, unit in enumerate(reversed(reduce(list.__add__, [ ["仟", "佰", "拾", big_unit] for big_unit in ["兆", "亿", "万", ""]]))) if idx<len(seq) and int(list(reversed(seq))[idx])>0]))) 支持了中间一堆 0 的情况, but, 代码完全没有可读性了, Orz |
31 a87150 2017 年 9 月 6 日 @ipconfiger from functools import reduce 我信了你的邪 |
32 Kisesy 2017 年 9 月 6 日 |
33 ipconfiger 2017 年 9 月 6 日 @a87150 并没有啊, 不信你试试, 2.7 哈 |
35 KaKaGoSki 2017 年 9 月 6 日 百度不会吗 |
36 sirm2z 2017 年 9 月 6 日 js 自带: ``` var number = 1000 number.toLocaleString('zh-Hans-CN-u-nu-hanidec') ``` |
37 LancerEvo 2017 年 9 月 6 日 |
40 ipconfiger 2017 年 9 月 6 日 第二种方法: lambda seq: "".join(reversed(["".join([prefix, ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"][int(num)], unit]) for prefix, num, unit in [["零", tp[0], tp[1]] if idx<(len(seq)-1) and int(seq[len(seq)-idx-2])<1 else ["", tp[0], tp[1]] for idx, tp in enumerate(zip(list(reversed(seq)) , list(reversed(reduce(list.__add__, [ ["仟", "佰", "拾", big_unit] for big_unit in ["兆", "亿", "万", ""]]))))) if int(tp[0])]])) |
41 szopen 2017 年 9 月 6 日 |
42 ipconfiger 2017 年 9 月 6 日 终极一行写法, 解决了大部分已知问题, 并且支持输入数字 lambda number_string: (lambda seq: "".join(reversed(["".join(["".join([p, ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"][int(n)], u]) for p, n, u in reversed(s[0])]) + s[1] for s in [(lambda sub_seq: [[["零", tp[0], tp[1]] if i<(len(sub_seq)-1) and int(sub_seq[i+1])< 1 else ["", tp[0], tp[1]] for i, tp in enumerate(zip(sub_seq, ["", "拾", "佰", "仟"])) if int(tp[0])], unit])(seq[idx*4:(idx+1)*4] or []) for idx, unit in enumerate(["", "万", "亿", "兆", "京"])] if s[0]])))("".join(reversed(str(number_string)))) |
44 zhx1991 2017 年 9 月 6 日 一百二 120 两百零二 202 两百二 220 |
45 asj 2017 年 9 月 7 日 |
46 calebx 2017 年 9 月 7 日 |