首页 > 其他分享 >金额转换工具

金额转换工具

时间:2022-11-04 17:00:46浏览次数:49  
标签:转换 charAt rs 金额 static isZero 工具 UNIT String



/**
* 金额转换工具
* @Author yinjianbo
* @Description TODO
* @Date 2019-12-23
*/
public class MoneyUpperUntil {

private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分";
private static final String DIGIT = "零壹贰叁肆伍陆柒捌玖";
private static final Double MAX_VALUE = 9999999999999.99D;

/**
* 金额转换中文大写
* @author yinjianbo
* @param
* @return
*/
public static String change(double v) {
if (v < 0 || v > MAX_VALUE){
return "参数非法!";
}
long l = Math.round(v * 100);
if (l == 0){
return "零元整";
}
String strValue = l + "";
// i用来控制数
int i = 0;
// j用来控制单位
int j = UNIT.length() - strValue.length();
String rs = "";
boolean isZero = false;
for (; i < strValue.length(); i++, j++) {
char ch = strValue.charAt(i);
if (ch == '0') {
isZero = true;
if (UNIT.charAt(j) == '亿' || UNIT.charAt(j) == '万' || UNIT.charAt(j) == '元') {
rs = rs + UNIT.charAt(j);
isZero = false;
}
} else {
if (isZero) {
rs = rs + "零";
isZero = false;
}
rs = rs + DIGIT.charAt(ch - '0') + UNIT.charAt(j);
}
}
if (!rs.endsWith("分")) {
rs = rs + "整";
}
rs = rs.replaceAll("亿万", "亿");
return rs;
}

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

标签:转换,charAt,rs,金额,static,isZero,工具,UNIT,String
From: https://www.cnblogs.com/FocusCtrlC-V/p/16858376.html

相关文章

  • JS数据类型转换规则
    JS的数据类型基本数据类型(七种)NumberStringBooleanNullUndefinedSymbolSymbol详解BigIntBigInt数据类型的目的是比Number数据类型支持的范围更大的整数值以......
  • Pycharm中安装和配置PyQt5的相关工具
    简介PyQt是Qt框架的Python语言实现,由RiverbankComputing开发,是最强大的GUI库之一。本文主要讲述如何在Pycharm上安装和配置PyQT的相关工具,需要配置的工具有如下几个:QtD......
  • 分页查询,Record,map2entity工具类
    分页查询,Record,map2entity工具类1.pagepackagecom.WT.bigdata.dsjmh.api.utils;importcom.jfinal.plugin.activerecord.Record;importjava.util.List;/***分......
  • json 工具类
    json工具类/**LicensedtotheApacheSoftwareFoundation(ASF)underoneormore*contributorlicenseagreements.SeetheNOTICEfiledistributedwith......
  • 关于工具类的学习-StringUtils(常用)
    关于工具类的学习-StringUtils(常用)packagecom.WT.bigdata.dsjmh.api.utils;importjava.util.HashMap;importjava.util.Map;publicclassStringUtils{/**......
  • CountDownLatch并发工具类
    作用CountDownLatch允许一个或多个线程等待其他线程完成操作,相当于一个加强版的join方法。核心方法CountDownLatch的构造函数接收一个int类型的参数作为计数器,如果你想等待N......
  • vue 金额、千分位、保留几位小数
    最近项目中有需求,千分位,同时重量要保留3位,金额要保留2位,金额对精度要求高,需要保留6位,提供一种同时保留千分位,小数位数随机的方法filters:{/*s:要格式化的数字,n:......
  • JAVA CST时间 转换成Date
    格式化CST时间SimpleDateFormatsdf=newSimpleDateFormat("EEEMMMddHH:mm:sszzzyyyy",Locale.US);CST时间转换成字符串,实体中为date类型的toString()转换即......
  • CyclicBarrier并发工具类
    作用让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开放,所有被屏障拦截的线程才会继续运行。核心方法CyclicBarrier(intparties):默认构......
  • 实例038将汉字转换为拼音
      实例需要定义拼音编码和拼音数组,参考如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;u......