设为首页 加入收藏

TOP

Java浮点数转人民币读法(一)
2018-03-18 16:21:38 】 浏览:417
Tags:Java 点数 人民币 读法

Java浮点数转人民币读法


package theTest;
public class NumToRmb {
   
    private String[] hanArr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
   
    private String[] unitArr={"仟","佰","拾"};
   
    /**
      * 把一个浮点数分解成整数部分和小数部分字符串
      * @param num 需要被分解的浮点数
      * @return 分解出来的整数部分和小数部分,第1个数组元素是整数部分,第2个数组元素是小数部分。
      */
    private String[] divide(double num){
          //将一个浮点数强制转换为long型,即得到它的整数部分
          long zheng=(long)num;
         
          //浮点数减去整数部分,得到小数部分,小数部分乘以100取整得到两位小数
          long xiao=Math.round((num-zheng)*100);
         
          //这里使用两种方法将整数转换为字符串
          return new String[]{String.valueOf(zheng),xiao+""};
    }
    /**
      * 将整数分成4个数字为一组的字符串处理,转化成大写数字再将它们连接起来,得到最终的人民币读法
      * @param num 需要被转化为大写数字的浮点数
      * @return 返回整个数字的人民币读法
      */
    private String conHanStr(double num){
         
          //存储整数结果、小数结果
          String resZheng="";
          String resXiao="";
         
          //存储最终结果
          String result="";
         
          //分别存储整数部分和小数部分字符串
          String zhengStr=divide(num)[0];
          String xiaoStr=divide(num)[1];
         
          /*小数部分的处理*/
          if(xiaoStr.length()==1){
                xiaoStr="0"+xiaoStr;
          }
         
          resXiao=xiao2Han(xiaoStr);
         
          /*整数部分的处理*/
          //记录字符串个数,是第几个数组
          int countArr=0;
          String tempStr="";
         
          //记录位数
          int countNum=0;
         
          for(int i=zhengStr.length()-1;i>=0;i--){
                countNum++;
                tempStr=zhengStr.charAt(i)+tempStr;
               
                if(i-1<0){
                    //i已经是最后一个数字,不够的位,补0
                    while(tempStr.length()<4){
                          tem

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇TensorFlow 基本用法示例 下一篇Spring IOC容器的基本应用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目