Java 实现人民币金额大写转换:RMB 类静态方法 toString
class RMB { private static final String[] NUMBERS = {'零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'}; private static final String[] UNITS = {'元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万', '拾', '佰', '仟'};
public static String toString(double x) {
long yuan = (long) x;
int jiao = (int) ((x - yuan) * 10);
int fen = (int) ((x - yuan) * 100) % 10;
StringBuilder sb = new StringBuilder();
if (yuan == 0) {
sb.append(NUMBERS[0]);
} else {
int count = 0;
while (yuan > 0) {
int digit = (int) (yuan % 10);
String unit = UNITS[count];
if (digit != 0) {
sb.insert(0, unit);
}
sb.insert(0, NUMBERS[digit]);
if (digit == 0 && sb.charAt(0) != '零') {
sb.insert(0, '零');
}
count++;
yuan /= 10;
}
}
if (jiao == 0 && fen == 0) {
sb.append('元整');
} else {
if (jiao != 0) {
sb.append(NUMBERS[jiao]).append('角');
}
if (fen != 0) {
sb.append(NUMBERS[fen]).append('分');
}
}
return sb.toString();
}
}
原文地址: https://www.cveoy.top/t/topic/cqN8 著作权归作者所有。请勿转载和采集!