将一个数字转化成中文输出

java1109 2009-10-24 09:13:52
将一个数字转化成中文输出
(如:1234567 输出:一百二拾三万四千五百六拾七
如:1205.5 输出一千二百零五点五
用java语言实现,,请编一段程序实现!
...全文
231 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
XNightSky 2009-10-27
  • 打赏
  • 举报
回复
学习~路过~
qjcslgnhwayagain 2009-10-27
  • 打赏
  • 举报
回复
有时间来学习,先标记一下
老张-AI 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 java1109 的回复:]
大家还有没有别的方法?
[/Quote]

楼上给的都还不够么?
java1109 2009-10-27
  • 打赏
  • 举报
回复
大家还有没有别的方法?
阿_布 2009-10-24
  • 打赏
  • 举报
回复

public class TestNumberToString {

public static void main(String[] args) {
String[] digitChinese = { "零", "一", "二", "三", "四", "五", "六", "七", "八",
"九" };
String[] unitChinese = { "点", "十", "百", "千", "万" };
double digit = 1234567.235;
String convert = "";
String digitStr = String.valueOf(digit);
int length = digitStr.length();
int pointIndex = digitStr.indexOf(".");
int position = pointIndex == -1 ? length - 1 : pointIndex-1;
for (int i = 0; i < pointIndex; i++) {
int temp = Integer.parseInt(digitStr.substring(i, i + 1));
convert += position > 4 ? digitChinese[temp]
+ unitChinese[position % 4] : digitChinese[temp]
+ unitChinese[position];
position--;
}
if (pointIndex != -1) {
for (int i = pointIndex+1; i < length; i++) {
convert += digitChinese[Integer.parseInt(digitStr.substring(i,i+1))];
}
}
System.out.println(convert);
}

}
lz12366007 2009-10-24
  • 打赏
  • 举报
回复
public class TestBigChar {

public static char[] characters = {'零','一','二','三','四','五','六','七','八','九'};
public static char[] units = {'点','十','百','千'};

public static void main(String[] args) {
System.out.println(convert(123.04));
}

public static String convert(double d){
String val = d+"";
String convert = "";
int index = val.indexOf('.');
for(int i=0;i<val.length();i++){
convert += i==index?units[0]:characters[Integer.parseInt(val.substring(i,i+1))];
if(i<index)
convert += units[index-i];
}
return convert;
}

}




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lz12366/archive/2009/10/02/4628139.aspx
loveofmylife 2009-10-24
  • 打赏
  • 举报
回复
以前写的人民币大小写转换的
import java.util.*;
public class RmbConvert {
public void convertToCapital(double money){
String[] capitalRmb=new String[14];
for(int i=0;i<capitalRmb.length;i++){
int j=(int)((money*100)%10);
money/=10;
switch(j){
case 0: capitalRmb[i]="零";break;
case 1:capitalRmb[i]="壹";break;
case 2:capitalRmb[i]="贰";break;
case 3:capitalRmb[i]="叁";break;
case 4:capitalRmb[i]="肆";break;
case 5:capitalRmb[i]="伍";break;
case 6:capitalRmb[i]="陆";break;
case 7:capitalRmb[i]="柒";break;
case 8:capitalRmb[i]="捌";break;
case 9:capitalRmb[i]="玖";break;
}
}
String[] str=new String[]{
"仟","百","拾","亿 ","仟","百","拾","万 ","仟","百","拾","元 ","角","分"
};
int init=0;
while(capitalRmb[capitalRmb.length-1-init]=="零"){
init++;
}
for(int i=init;i<str.length;i++){
if(capitalRmb[capitalRmb.length-1-i]=="零"&&str[i]!="角"&&str[i]!="分"){
System.out.print(capitalRmb[capitalRmb.length-1-i]);
}else
System.out.print(capitalRmb[capitalRmb.length-1-i]+str[i]);
}
}
public void convertToLower(String money){
char[] c=money.toCharArray();
double[] num=new double[c.length/2];
int j=0;
for(int i=0;i<c.length;i+=2){
double d=num.length-3-j;
switch(c[i]){
case '零':num[j++]=(0*Math.pow(10.0,d));break;
case '壹':num[j++]=(1*Math.pow(10.0,d));break;
case '贰':num[j++]=(2*Math.pow(10.0,d));break;
case '叁':num[j++]=(3*Math.pow(10.0,d));break;
case '肆':num[j++]=(4*Math.pow(10.0,d));break;
case '伍':num[j++]=(5*Math.pow(10.0,d));break;
case '陆':num[j++]=(6*Math.pow(10.0,d));break;
case '柒':num[j++]=(7*Math.pow(10.0,d));break;
case '捌':num[j++]=(8*Math.pow(10.0,d));break;
case '玖':num[j++]=(9*Math.pow(10.0,d));break;
}

}
double init=0;
for(int i=0;i<num.length;i++){
init+=num[i];
}
System.out.print(init);
}
public static void main(String[] args) {
System.out.println("please enter the lower momey");
RmbConvert rmb=new RmbConvert();
Scanner sca=new Scanner(System.in);
Double money=sca.nextDouble();
System.out.println("convert to Capital");
rmb.convertToCapital(money);
System.out.println();
System.out.println("convert to lower");
Scanner sc=new Scanner(System.in);
String str=sc.next();
rmb.convertToLower(str);
}

}

测试结果:please enter the lower momey
123456789
convert to Capital
壹亿 贰仟叁百肆拾伍万 陆仟柒百捌拾玖元 零角零分
convert to lower
壹亿贰仟叁百肆拾伍万陆仟柒百捌拾玖元零角零分
1.23456789E8
freezgw1985 2009-10-24
  • 打赏
  • 举报
回复
你直接把传进来的 数字

1.String.valueof();先转成字符串
2. str.split(".");//截取 整数部分与小数部分
str.length();/根据数组长度判断有没小树部分 然后分开处理
3. 接着把整数部分 s.length()判断一下有多长超过三位数的截取出来
套一个循环 万 十万 百万........等等等等。

三位以内的也就是 下标为s.length()-3,-2,-1,分别为 千,百,十。

数字部分可以套一个 switch( Integer.paseInt(s.charAt(index) ) ){
case 0: xxx = "零";break;
case 1; xxx = "壹";break;
..
..
..
}

核心思想就在上面了! 用字符串处理比较灵活。
下载代码方式:https://pan.quark.cn/s/054d920fa1d1 《学生博客信息管理系统详解》 学生博客信息管理系统是一款针对教育环境而设计的简化博客平台,其主要目的在于协助教师进行学生博客信息的监控与管理,并对学生的作业得分进行记录。该系统具备方便的查询和访问特性,能够显著提升教学活动中的信息传递效率,并且为学生构建了一个展示个人能力、交流知识的平台。 1. **系统架构** 学生博客信息管理系统大概采用了常规的三层架构,涵盖了表现层(用户交互界面)、业务逻辑层(负责业务规则的执行)以及数据访问层(负责与数据库进行数据交换)。此类架构有利于代码的规范化管理与维护,有助于提升系统的可扩展性与代码复用率。 2. **功能模块** - **用户管理**:包含注册、登录、个人资料维护等功能,旨在保障用户能够安全地使用系统。 - **博客发布**:学生能够建立、修改和移除自己的博客文章,内容形式支持文本、图片、链接等多样化展示。 - **博客查询**:用户可根据关键词、作者等条件进行检索,以快速定位所需的博客内容。 - **作业评分**:教师可以检视学生的作业,实施评分与评语,系统将自动计算每次作业的平均分数与总得分。 - **统计分析**:系统提供数据统计功能,例如学生作业成绩的分布情况、活跃度最高的博主排行等,为教学决策提供数据依据。 3. **技术选型** 从提供的文件"博客管理.jar"可以推断,该系统可能基于Java语言开发,因为.jar是Java程序的可执行文件格式。同时,"博客管理_lib"可能包含了系统运行所需的第三方库资源,这些库资源或许包含了Spring框架、Hibernate用于数据持久化处理,或MyBatis用于数据库交互,...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧