• 将一个浮点数转换成人民币读法字符串(java)




    public class Num2Rmb  
    {  
        private String[] hanArr = {"零" , "壹" , "贰" , "叁" , "肆" ,   
            "伍" , "陆" , "柒" , "捌" , "玖"};  
        private String[] unitArr = {"十" , "百" , "千"};  
      
        /**  
         * 把一个浮点数分解成整数部分和小数部分字符串  
         * @param num 需要被分解的浮点数  
         * @return 分解出来的整数部分和小数部分。第一个数组元素是整数部分,第二个数组元素是小数部分。  
         */  
        private String[] divide(double num)  
        {  
            //将一个浮点数强制类型转换为long,即得到它的整数部分  
            long zheng =  (long)num;  
            //浮点数减去整数部分,得到小数部分,小数部分乘以100后再取整得到2位小数  
            long xiao = Math.round((num - zheng) * 100);  
            //下面用了2种方法把整数转换为字符串  
            return new String[]{zheng + "", String.valueOf(xiao)};        
        }  
      
        /**  
         * 把一个四位的数字字符串变成汉字字符串  
         * @param numStr 需要被转换的四位的数字字符串  
         * @return 四位的数字字符串被转换成的汉字字符串。  
         */  
        private String toHanStr(String numStr)  
        {  
            //int pretemp=0;  
            String result = "";  
            int numLen = numStr.length();  
            int temp=0;  
            //依次遍历数字字符串的每一位数字  
              
            for (int i = 0; i <numLen ; i++ )  
            {  
                  
                //把char型数字转换成的int型数字,因为它们的ASCII码值恰好相差48  
                //因此把char型数字减去48得到int型数字,例如'4'被转换成4。  
                int num = numStr.charAt(i) - 48;  
                //如果不是最后一位数字,而且数字不是零,则需要添加单位(千、百、十)  
                  
                if (num==0)  
                {  
                    temp++;  
                }  
                if (temp==2)  
                {  
                      
                    //pretemp=temp;  
                    temp=0;  
                      
                    continue;//如果不止一个0跳出本次循环  
      
                }  
              
                if ( i != numLen - 1 && num != 0)  
                {  
                    result += hanArr[num] + unitArr[numLen - 2 - i];  
                }  
                //否则不要添加单位  
                else  
                {  
                    result += hanArr[num];  
                }  
            }  
            return result;  
        }  
      
        public static void main(String[] args)   
        {          
            Num2Rmb nr = new Num2Rmb();  
            //测试把一个浮点数分解成整数部分和小数部分  
            System.out.println(Arrays.toString(nr.divide(236711125.123)));  
            //测试把一个四位的数字字符串变成汉字字符串  
            System.out.println(nr.toHanStr("9009"));  
        }  
    }

  • 相关阅读:
    NYIST 46 最少乘法次数
    OpenSSL命令---rsa
    Javah生成JNI头文件
    Stbdroid之ShapeDrawable
    Android之判断设备网络连接状态,并判断连接方式
    [置顶] 程序员必知(二):位图(bitmap)
    中断子系统8_软中断入口处理
    二叉搜索树的后续遍历序列
    整理生命
    sicily9162. RAZLIKA
  • 原文地址:https://www.cnblogs.com/riskyer/p/3402489.html
Copyright © 2020-2023  润新知