java实现金额转换,阿拉伯数字的金额转换成中国传统的形式

java实现金额转换,阿拉伯数字的金额转换成中国传统的形式,第1张

直接通过以下接口类方法实现即可:
import javamathBigDecimal;
/
金额工具类

@author zn

@Date 2013-2-1
@Email znshare@gmailcom
/
public class MoneyUtil {
private static final int DFT_SCALE = 2;
/ 大写数字 /
private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍",
"陆", "柒", "捌", "玖" };
/ 整数部分的单位 /
private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰",
"仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };
/ 小数部分的单位 /
private static final String[] DUNIT = { "角", "分", "厘" };
/
得到大写金额。
/
public static String toChinese(String str) {
str = strreplaceAll(",", "");// 去掉","
String integerStr;// 整数部分数字
String decimalStr;// 小数部分数字
// 初始化:分离整数部分和小数部分
if (strindexOf("") > 0) {
integerStr = strsubstring(0, strindexOf(""));
decimalStr = strsubstring(strindexOf("") + 1);
} else if (strindexOf("") == 0) {
integerStr = "";
decimalStr = strsubstring(1);
} else {
integerStr = str;
decimalStr = "";
}
// integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)
if (!integerStrequals("")) {
integerStr = LongtoString(LongparseLong(integerStr));
if (integerStrequals("0")) {
integerStr = "";
}
}
// overflow超出处理能力,直接返回
if (integerStrlength() > IUNITlength) {
Systemoutprintln(str + ":超出处理能力");
return str;
}
int[] integers = toArray(integerStr);// 整数部分数字
boolean isMust5 = isMust5(integerStr);// 设置万单位
int[] decimals = toArray(decimalStr);// 小数部分数字
return getChineseInteger(integers, isMust5)
+ getChineseDecimal(decimals);
}
/
整数部分和小数部分转换为数组,从高位至低位
/
private static int[] toArray(String number) {
int[] array = new int[numberlength()];
for (int i = 0; i < numberlength(); i++) {
array[i] = IntegerparseInt(numbersubstring(i, i + 1));
}
return array;
}
/
得到中文金额的整数部分。
/
private static String getChineseInteger(int[] integers, boolean isMust5) {
StringBuffer chineseInteger = new StringBuffer("");
int length = integerslength;
for (int i = 0; i < length; i++) {
// 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元)
// 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元)
String key = "";
if (integers[i] == 0) {
if ((length - i) == 13)// 万(亿)(必填)
key = IUNIT[4];
else if ((length - i) == 9)// 亿(必填)
key = IUNIT[8];
else if ((length - i) == 5 && isMust5)// 万(不必填)
key = IUNIT[4];
else if ((length - i) == 1)// 元(必填)
key = IUNIT[0];
// 0遇非0时补零,不包含最后一位
if ((length - i) > 1 && integers[i + 1] != 0)
key += NUMBERS[0];
}
chineseIntegerappend(integers[i] == 0 key
: (NUMBERS[integers[i]] + IUNIT[length - i - 1]));
}
return chineseIntegertoString();
}
/
得到中文金额的小数部分。
/
private static String getChineseDecimal(int[] decimals) {
StringBuffer chineseDecimal = new StringBuffer("");
for (int i = 0; i < decimalslength; i++) {
// 舍去3位小数之后的
if (i == 3)
break;
chineseDecimalappend(decimals[i] == 0 ""
: (NUMBERS[decimals[i]] + DUNIT[i]));
}
return chineseDecimaltoString();
}
/
判断第5位数字的单位"万"是否应加。
/
private static boolean isMust5(String integerStr) {
int length = integerStrlength();
if (length > 4) {
String subInteger = "";
if (length > 8) { // TODO 12-9-17
// 取得从低位数,第5到第8位的字串
subInteger = integerStrsubstring(length - 8, length - 4);
} else {
subInteger = integerStrsubstring(0, length - 4);
}
return IntegerparseInt(subInteger) > 0;
} else {
return false;
}
}
/
BigDecimal 相乘,四舍五入保留0位

@param a
@param b
@return ab
/
public static BigDecimal mutiply(String a, String b, int roundingMode) {
BigDecimal bd = new BigDecimal(a);
return bdmultiply(new BigDecimal(b))setScale(DFT_SCALE, roundingMode);
}
/
BigDecimal 相除,四舍五入保留两位

@param a
@param b
@return a/b
/
public static BigDecimal div(String a, String b, int roundingMode) {
BigDecimal decimal1 = new BigDecimal(a);
BigDecimal decimal2 = new BigDecimal(b);
return decimal1divide(decimal2, DFT_SCALE, roundingMode);
}
/
BigDecimal 相加,四舍五入保留两位

@param a
@param b
@return a+b
/
public static BigDecimal sum(String a, String b, int roundingMode) {
BigDecimal decimal1 = new BigDecimal(a);
BigDecimal decimal2 = new BigDecimal(b);
// DecimalFormat format = new DecimalFormat("#000");
return decimal1add(decimal2)setScale(DFT_SCALE, roundingMode);
}
/
BigDecimal 相减,四舍五入保留两位

@param a
@param b
@return a+b
/
public static BigDecimal sub(String a, String b, int roundingMode) {
BigDecimal decimal1 = new BigDecimal(a);
BigDecimal decimal2 = new BigDecimal(b);
// DecimalFormat format = new DecimalFormat("#000");
return decimal1subtract(decimal2)setScale(DFT_SCALE, roundingMode);
}
/
10000 为10000

@param a
@return
/
public static BigDecimal format(String a, int roundingMode) {
return new BigDecimal(a)multiply(new BigDecimal(100))setScale(0,
roundingMode);
}
public static void main(String[] args) {
String number = "54452";
Systemoutprintln(number + " " + MoneyUtiltoChinese(number));
number = "30200";
Systemoutprintln(number + " " + MoneyUtiltoChinese(number));
number = "3000005";
Systemoutprintln(number + " " + MoneyUtiltoChinese(number));
number = "3000000";
Systemoutprintln(number + " " + MoneyUtiltoChinese(number));
}
}
备注:最后面的main方法是具体的调用。

FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他行业产品的设计。 与 ASIC 不同,FPGA在通信行业的应用比较广泛。

通过对全球FPGA产品市场以及相关供应商的分析,结合当前我国的实际情况以及国内领先的FPGA产品可以发现相关技术在未来的发展方向,对我国科技水平的全面提高具有非常重要的推动作用。

扩展资料:

工作原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。

现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。

FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。

PLA,可编程序逻辑阵列(Programmable Logic Array),是可编程逻辑器件的一种,它是与、或阵列均可编程的、包含有记忆元件的大规规模集成电路,它能实现任意逻辑函数的组合电路以及实现时序电路。PLA具有结构规整、使用灵活等特点,广泛应用于数字系统和VLSI芯片设计。

PLA的故障类型

在对PLA进行故障检测时一般考虑如下故障:

(1) 丢失交叉点故障:PLA在生产制造过程中,或是用户编程时都有可能使应该连接的编程管没有正确连上,不该连接的编程管错误地连上,这将引起PLA逻辑混乱。

(2) 多余交叉点故障:在PLA使用一段时间后,某些编程管很有可能损坏,进而引起PLA逻辑混乱。

(3) 固定故障;

(4) 邻线桥接故障。

检测交叉点故障的测试集能够复盖固定故障和邻线桥接故障。

扩展资料:

PLA在其他领域所代表的意思

1、PLA(聚乳酸简称)

聚乳酸(PLA)是一种新型的生物基及可再生生物降解材料,使用可再生的植物资源(如玉米、木薯等)所提出的淀粉原料制成。淀粉原料经由糖化得到葡萄糖,再由葡萄糖及一定的菌种发酵制成高纯度的乳酸,再通过化学合成方法合成一定分子量的聚乳酸。

2、中国人民解放军(简称:人民解放军、解放军,英文:People's Liberation Army of China,英文缩写:PLA)是中华人民共和国最主要的武装力量。

参考资料:

百度百科_可编程序逻辑阵列

百度百科_中国人民解放军

百度百科_PLA

mmult是什么函数:Microsoft Excel中MMULT函数。返回两个数组的矩阵乘积。

结果矩阵的行数与array1的行数相同,矩阵的列数与array2的列数相同。

array1、array2。要进行矩阵乘法运算的两个数组。

array1中的列数与array2中的行数相同,并且这两个数组必须仅包含数字。

array1和array2可以作为单元格区域、数组常量或引用提供。

函数

定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。

中国古代“函”字与“含”字通用,都有着“包含”的意思。李善兰给出的定义是:“凡式中含天,为天之函数。”中国古代用天、地、人、物4个字来表示4个不同的未知数或变量。这个定义的含义是:“凡是公式中含有变量x,则该式子叫做x的函数。”所以“函数”是指公式里含有变量的意思。

我们所说的方程的确切定义是指含有未知数的等式。

通过JavaScript。。
var data=new Array("中国","日本","韩国","朝鲜","印度");
for(var i=0;i<datalength;i++){
var getData = data[i];
//get ID就是你的下拉框select的ID。。
documentgetElementById("show1")optionsadd(new Option(getData,getData));
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13181098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-16
下一篇 2023-06-16

发表评论

登录后才能评论

评论列表(0条)

保存