mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
阿拉伯数字转换成中文对发票票面金额转换的扩展
This commit is contained in:
parent
b8bfce490b
commit
206de3bad0
@ -40,7 +40,6 @@ public class NumberChineseFormatter {
|
|||||||
new ChineseUnit('亿', 1_0000_0000, true),
|
new ChineseUnit('亿', 1_0000_0000, true),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换.
|
* 阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换.
|
||||||
*
|
*
|
||||||
@ -53,14 +52,24 @@ public class NumberChineseFormatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换.
|
* 阿拉伯数字转换成中文.
|
||||||
|
*
|
||||||
|
* <p>主要是对发票票面金额转换的扩展
|
||||||
|
* <p>如:-12.32
|
||||||
|
* <p>发票票面转换为:(负数)壹拾贰圆叁角贰分
|
||||||
|
* <p>而非:负壹拾贰元叁角贰分
|
||||||
|
* <p>共两点不同:1、(负数) 而非 负;2、圆 而非 元
|
||||||
|
* 2022/3/9
|
||||||
*
|
*
|
||||||
* @param amount 数字
|
* @param amount 数字
|
||||||
* @param isUseTraditional 是否使用繁体
|
* @param isUseTraditional 是否使用繁体
|
||||||
* @param isMoneyMode 是否为金额模式
|
* @param isMoneyMode 是否金额模式
|
||||||
* @return 中文
|
* @param negativeName 负号转换名称 如:负、(负数)
|
||||||
|
* @param unitName 单位名称 如:元、圆
|
||||||
|
* @return java.lang.String
|
||||||
|
* @author machuanpeng
|
||||||
*/
|
*/
|
||||||
public static String format(double amount, boolean isUseTraditional, boolean isMoneyMode) {
|
public static String format(double amount, boolean isUseTraditional, boolean isMoneyMode, String negativeName, String unitName) {
|
||||||
if (0 == amount) {
|
if (0 == amount) {
|
||||||
return "零";
|
return "零";
|
||||||
}
|
}
|
||||||
@ -71,7 +80,7 @@ public class NumberChineseFormatter {
|
|||||||
|
|
||||||
// 负数
|
// 负数
|
||||||
if (amount < 0) {
|
if (amount < 0) {
|
||||||
chineseStr.append("负");
|
chineseStr.append(StrUtil.isNullOrUndefined(negativeName) ? "负" : negativeName);
|
||||||
amount = -amount;
|
amount = -amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +95,7 @@ public class NumberChineseFormatter {
|
|||||||
// 金额模式下,无需“零元”
|
// 金额模式下,无需“零元”
|
||||||
chineseStr.append(longToChinese(yuan, isUseTraditional));
|
chineseStr.append(longToChinese(yuan, isUseTraditional));
|
||||||
if (isMoneyMode) {
|
if (isMoneyMode) {
|
||||||
chineseStr.append("元");
|
chineseStr.append(StrUtil.isNullOrUndefined(unitName) ? "元" : unitName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,6 +136,18 @@ public class NumberChineseFormatter {
|
|||||||
return chineseStr.toString();
|
return chineseStr.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换.
|
||||||
|
*
|
||||||
|
* @param amount 数字
|
||||||
|
* @param isUseTraditional 是否使用繁体
|
||||||
|
* @param isMoneyMode 是否为金额模式
|
||||||
|
* @return 中文
|
||||||
|
*/
|
||||||
|
public static String format(double amount, boolean isUseTraditional, boolean isMoneyMode) {
|
||||||
|
return format(amount, isUseTraditional, isMoneyMode, "负", "元");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 阿拉伯数字(支持正负整数)转换成中文
|
* 阿拉伯数字(支持正负整数)转换成中文
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user