-09-01 00:35黄益江 客户经理
把阿拉伯数字转为中文可以,你在“设置单元格格式”“数字”“特殊”“中文大写数字”,就可以了袱甫递晃郛浩店彤锭廓,只要你输入数字,他会自动变为中文的大写
-09-01 00:32黄盛洁 客户经理
java实现金额转换,阿拉伯数字的金额转换成中国传统的形式
import java.util.HashMap;
import java.text.NumberFormat;
import java.lang.StringBuffer;
public class SimpleMoneyFormat {
public static final String EMPTY="";
public static final String ZERO="零";
public static final String ONE="壹";
public static final String TWO="贰";
public static final String THREE="叁";
public static final String FOUR="肆";
public static final String FIVE="伍";
public static final String SIX="陆";
public static final String SEVEN="柒";
public static final String EIGHT="捌";
public static final String NINE="玖";
public static final String TEN="拾";
public static final String HUNDRED="佰";
public static final String THOUSAND="仟";
public static final String TEN_THOUSAND="万";
public static final String HUNDRED_MILLION="亿";
public static final String YUAN="元";
public static final String JIAO="角";
public static final String FEN="分";
public static final String DOT=".";
private static SimpleMoneyFormat formatter=null;
private HashMap chineseNumberMap=new HashMap();
private HashMap chineseMoenyPattern=new HashMap();
private NumberFormat numberFormat=NumberFormat.getInstance();
//私有构造函数
private SimpleMoneyFormat() {
numberForma......
-09-01 00:29赖鹏华 客户经理
之前在CSDN论坛里,看有人Show了一些把中文大写转换成阿拉伯数字的程序代码,自己也用Java语言实现了程序设计,基本上能够实现十万亿以内的任何数字的转换。之前也帖出自己的实现代码。 但我个人认为,把大写转换为数字实际上是没有多少意义的。因为很少有把大写转为数字的,大多数都是把数字转换为大写。何况把大写转为数字并不是一件很容易的事情,因为汉语大写有很多种说法,比如说:101,它的汉语说法可以有好多种: (一)、百零一 (二)、一百零一 (三)、一百又一 (四)、幺零幺 因此,要实现起来其实是很难的。而且还要防止用户输入大小写不固定,一会输入“一百零一”,一会又输入“壹佰零壹”,或者是二者的杂合体。形式千变万化,何况这一个数字就可以有这么多种,还有那么多特殊的数字呢?除非用成统一标准的输入。否则是很容易出现问题的。 但是,数字转换成大写却是很实用的,平时去银行用得比较多,只要涉及金钱的时候,基本上都要求用大写。所以,这种转换看来是符合要求,因此,我用C#代码实现了其功能,并将用户输入用“,”分隔成三个一组的形式,可以实现百万亿级别的数字转换。下面我帖出部分代码,大家指正: 其他输入验证我就不帖出来了,只把核心代码帖出来class Chinese { public string returnResult(long num) { string numStr = num.ToString(); //主要理念是把数字字符串最终分隔为四个一组四个一组的,不足的不管。 if (numStr.Length > 8 & numStr.Length < 16) { //定义一个数组,存储整个字条串分隔后的字符串。然后两次递归调用。 //调用完全后,得到总的大写字符串。 string[] firstSplit = new string[2]; firstSplit[0] = numStr.Substring(0, numStr.Length - 8); firstSplit[1] = numStr.Substring(numStr.Length - 8, 8); string result1 = getString(firstSplit[0]) + "億"; string result2 = getString(firstSplit[1]); return result1 + result2; } else { return getString(numStr); } } //进行一次递归调用,得到两组四位数字的大字字串 public string getString(string str) { if (str.Length > 4) { string[] secondSplit = new string[2]; se乏稜催谷诎咐挫栓旦兢condSplit[0] = str.Substring(0, str.Length - 4); secondSplit[1] = str.Substring(str.Length - 4, 4); string result1 = getRe(secondSplit[0]); string result2 = getRe(secondSplit[1]); //确定是否加“万”字 if (!secondSplit[0].Equals("0000")) { result1 += "萬&quo......余下全文>>
-09-01 00:26赵颐轩 客户经理
在阿拉伯数字的格上点右键“设置单元格格式”——数字——特殊——中文大写
热心网友
-09-01 00:20龚宇飞 客户经理
之前在CSDN论坛里,看有人Show了一些把中文大写转换成阿拉伯数字的程序代码,自己也用Java语言实现了程序设计,基本上能够实现十万亿以内的任何数字的转换。之前也帖出自己的实现代码。 但我个人认为,把大写转换为数字实际上是没有多少意义的。因为很少有把大写转为数字的,大多数都是把数字转换为大写。何况把大写转为数字并不是一件很容易的事情,因为汉语大写有很多种说法,比如说:101,它的汉语说法可以有好多种: (一)、百零一 (二)、一百零一 (三)、一百又一 (四)、幺零幺 因此,要实现起来其实是很难的。而且还要防止用户输入大小写不固定,一会输入“一百零一”,一会又输入“壹佰零壹”,或者是二者的杂合体。形式千变万化,何况这一个数字就可以有这么多种,还有那么多特殊的数字呢?除非用成统一标准的输入。否则是很容易出现问题的。 但是,数字转换成大写却是很实用的,平时去银行用得比较多,只要涉及金钱的时候,基本上都要求用大写。所以,这种转换看来是符合要求,因此,我用C#代码实现了其功能,并将用户输入用“,”分隔成三个一组的形式,可以实现百万亿级别的数字转换。下面我帖出部分代码,大家指正: 其他输入验证我就不帖出来了,只把核心代码帖出来class Chinese { public string returnResult(long num) { string numStr = num.ToString(); //主要理念是把数字字符串最终分隔为四个一组四个一组的,不足的不管。 if (numStr.Length > 8 & numStr.Length < 16) { //定义一个数组,存储整个字条串分隔后的字符串。然后两次递归调用。 //调用完全后,得到总的大写字符串。 string[] firstSplit = new string[2]; firstSplit[0] = numStr.Substring(0, numStr.Length - 8); firstSplit[1] = numStr.Substring(numStr.Length - 8, 8); string result1 = getString(firstSplit[0]) + "亿"; string result2 = getString(firstSplit[1]); return result1 + result2; } else { return getString(numStr); } } //进行一次递归调用,得到两组四位数字的大字字串 public string getString(string str) { if (str.Length > 4) { string[] secondSplit = new string[2]; secondSplit[0] = str.Substring(0, str.Length - 4); secondSplit[1] = str.Substring(str.Length - 4, 4); string result1 = getRe(secondSplit[0]); string result2 = getRe(secondSplit[1]); //确定是否加“万”字 if (!secondSplit[0].Equals("0000")) { result1 += "万"; } retu......余下全文>>
-09-01 00:17连丽芳 客户经理
EXCEL中阿拉伯数字可通过设置单元格格式转换成中文:
转换为小写汉字,设置单元格格式--数字--特殊--中文小写数字;
转换为大写汉字,设置单元格格式--数字--特殊--中文大写数字;
也可以通过自定义来设置,设置单元格格式--数字--自定义--类型:[DBNum1]为小写汉字,[DBNum2]为大写汉字。
-09-01 00:14赵首永 客户经理
我这有一个金额应该就是你要的那种,要是你不要元角分把它们去掉就好。 关于大小写,你对应改下就好。 要是还是不行就追问我。
public class Trans2RMB { /**
* 测试程序的可行性
* @param args
*/
public static void main(String[] args) {
System.out.println(" 担处曹肺丨镀查僧肠吉2;n--------将数字转换成中文金额的大写形式------------\n");
Trans2RMB t2r = new Trans2RMB();
String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));
// 如果转换过后是一个空串,则不输出屏幕
if(!"".equals(s)) {
System.out.println("转换成中文后为:" + s);;
}
System.out.println("\n---------------------------------------------");
}
/**
* 从命令行接收一个数,在其中调用 checkNum() 方法对其进行
* 验证,并返回相应的值
* @return 如果输入合法,返回输入的这个数
*/
private String getNum() {
String s = null;
System.out.println("请输入一个数字(精确到小数点后两位):");
// 从命令行输入这个浮点数
java.util.Scanner scanner = new java.util.Scanner(System.in);
s = scanner.next();
// 关闭这个Scanner
scanner.close();
// 判断用户输入是否合法
// 若合法,返回这个值;若非法返回 "0"
if(this.checkNum(s)) {
return s;
} else {
return "";
}
}
/**
* 判断用户输入的数据是否合法,用户只能输入大于零的数字,不能输入其它字符
* @param s String
* @return 如果用户输入数据合法,返回 true,否则返回 false
*/
private boolean checkNum(String s) {
// 如果用户输入的数里有非数字字符,则视为非法数据,返回 false
try {
float f = Float.valueOf(s);
// 如果这个数小于零则视为非法数据,返回 false
if(f < 0) {
System.out.println("非法数据,请检查!");
return false;
}else {
return true;
}
} catch (N......
热心网友