17.091.07这是人民币上的数字数字是多少钱

1656人阅读
我们在参与大型项目时,难免会遇到数值转换人民币大写的情况。因为我今天接触了一个这样的转换,但原代码存在BUG,转换经常出现问题。于是我就去网上搜索了相关资源。由于没有找到相对权威的转换代码,网上给出的转换方式也是参差不齐。于是,我参考网友相对成熟的思路加以修改、优化,最终写出了自己的转换方法。
下面贴出代码:
* 采用分段的方式将给定小写金额转换成中文大写形式&br/&
* 从小数点开始向前数,四位为一段&br/&
* 支持整数位最多13位、小数位最多2位,多于两位的小数会被忽略&br/&
* @param value
* @return 转换后的中文大写字符串
public static String toBigMode(double value)
final char[] NUMBER_CHAR = &零壹贰叁肆伍陆柒捌玖&.toCharArray(); // 大写数字
final String[] IN_UNIT_CHAR = { &&, &拾&, &佰&, &仟& }; // 段内字符
final String[] UNIT_NAME = { &&, &万&, &亿&, &万亿& }; // 段名
// 金额乘100并转换成整数字符串(取出元角分数值)
String valStr = new BigDecimal(Double.toString(value)).multiply(
new BigDecimal(&100&)).toString();
if(valStr.indexOf(&.&) & 0)
valStr = valStr.substring(0, valStr.indexOf(&.&));
StringBuilder prefix = new StringBuilder(); // 整数部分转化的结果
StringBuilder suffix = new StringBuilder(); // 小数部分转化的结果
if (valStr.length() &= 2) // 只有小数部分
prefix.append(&零元&);
if (valStr.equals(&0&))
suffix.append(&零角零分&);
} else if (valStr.length() == 1)
suffix.append(NUMBER_CHAR[valStr.charAt(0) - '0']).append(&分&);
suffix.append(NUMBER_CHAR[valStr.charAt(0) - '0']).append(&角&);
suffix.append(NUMBER_CHAR[valStr.charAt(1) - '0']).append(&分&);
int flag = valStr.length() - 2;
String head = valStr.substring(0, flag); // 取整数部分
String rail = valStr.substring(flag); // 取小数部分
if (head.length() & 13)
return &数值太大(最大支持13位整数),无法处理。&;
// 处理整数位
char[] ch = head.toCharArray();
int zeroNum = 0; // 连续零的个数
for (int i = 0; i & ch. i++)
int index = (ch.length - i - 1) % 4; // 取段内位置,介于 3 2 1 0
int indexLoc = (ch.length - i - 1) / 4; // 取段位置,介于 3 2 1 0
if (ch[i] == '0')
zeroNum++;
if (zeroNum != 0)
if (index != 3)
prefix.append(&零&);
zeroNum = 0;
prefix.append(NUMBER_CHAR[ch[i] - '0']); // 转换该位置的数
prefix.append(IN_UNIT_CHAR[index]); // 添加段内标识
if (index == 0 && zeroNum & 4) // 添加段名
prefix.append(UNIT_NAME[indexLoc]);
prefix.append(&元&);
// 处理小数位
if (rail.equals(&00&))
suffix.append(&整&);
} else if (rail.startsWith(&0&))
suffix.append(NUMBER_CHAR[rail.charAt(1) - '0']).append(&分&);
suffix.append(NUMBER_CHAR[rail.charAt(0) - '0']).append(&角&);
suffix.append(NUMBER_CHAR[rail.charAt(1) - '0']).append(&分&);
return prefix.append(suffix).toString();
下载地址:
此方法参考了网友Davis129转载的文章,但又有诸多修改和优化。经本人简单测试,该代码基本上可以满足需要。虽然代码经过了多次测试,但难免存在未知BUG,欢迎拍砖留言!
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:149484次
积分:2765
积分:2765
排名:第6206名
原创:103篇
转载:46篇
评论:111条
(1)(2)(3)(1)(1)(2)(2)(5)(4)(2)(9)(2)(5)(3)(3)(4)(7)(6)(5)(14)(9)(5)(1)(8)(4)(4)(1)(1)(4)(4)(6)(2)(3)(9)(6)(1)六连号人民币!各位说说值多少钱呢? - Powered by phpwind
查看完整版本: [--
&Pages: ( 2 total )
六连号人民币!各位说说值多少钱呢?
六连号人民币!各位说说值多少钱呢?[attachment=1327638]
有么用。货物通胀贬值噢
值100元,而且还是人民币。
可以换很多一千万一张的
只能说不经花啊
假钞,不值钱!鉴定完毕!
100&&不能再多了···
哈哈,曾经构思过一篇小说,就是写钞票上的数字是201314的,结果,卖了大价钱,估计这个也值钱。
居然敢说中国人民很行发行的人民币一毛不值?不想混了?
:居然敢说中国人民很行发行的人民币一毛不值?不想混了? ( 08:17) 你直接拿这钱找老习说买他根毛,看他卖不,看是不是一毛不值。
最多值一百!!缺角少十元,顶!内容来自
假钞,一毛不值
[attachment=1327929][attachment=1327929]
这多个8不也就是100块········
自己收藏 舍不得花
留下吧,以后再说
假币不值钱&&&&中看不中用
[attachment=1328302]&& 这个不更值钱
价值一百人民币
值两张50----5张20-----10张10......
你还是留着吧,说不定过个50年,再拿出来的时候就值钱了。
假钞,不值钱
不够吃一顿的
沙发 鉴定完毕
有什么用哦
留着自己看看也好管他多少
值一百万。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。津巴布韦币
可以换成很多的冥币
值100元,而且还是人民币
楼上正解!
假币几个8都有大有小ps也太差了
慢慢意淫,哈哈
人民币的冠字号码很多,不少专业收藏这种吉祥号码的人会关注,但你这张钞票品相不怎么样,不值得留存。
查看完整版本: [--
Powered by <
Time 0.059459 second(s),query:5 Gzip enabled- 金牛在线
全复式计算器,能够快速准确帮助网友计算出49选2-7复式投注的投注数量
由1-49个号码中选择
个号码组成  
选择号码,生成全复式:
全选第一行
全选第二行
全选第三行
全选第四行
全选第五行
全选第六行
全选第七行17,600,000这个数字指多少人民币?_作业帮
拍照搜题,秒出答案
17,600,000这个数字指多少人民币?
17,600,000这个数字指多少人民币?
是壹仟柒佰陆拾万元整人民币.您好!请问我这张05年人民币是错币吗?是真币,现在值多少钱?谢谢赐教!_百度知道
提问者采纳
不过还是可以收藏的。价值不要期望太高,我认为不超过150元这种情况算不上错币
谢谢你的热心回答!
提问者评价
太给力了,你的回答完美的解决了我的问题!
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 人民币数字字体 的文章

 

随机推荐