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"));  

    }  

}

将一个浮点数转换成人民币读法字符串(java)的更多相关文章

  1. 题目要求:建立一个类Str,将一个正整数转换成相应的字符串,例如整数3456转换为字符串"3456".

    题目要求:建立一个类Str,将一个正整数转换成相应的字符串,例如整数3456转换为字符串"3456". 关键:怎么将一个数字转换为字符? [cpp] view plaincopy ...

  2. java 将一个正整数翻译成人民币大写的读法

    程序如下: import java.lang.StringBuffer; /** 给定一个浮点数,将其装换成人民币大写的读法 88.5:捌十捌元零伍角 */ public class Num2Rmb ...

  3. 算法--java实现将数字转换成人民币大写(迅雷面试题)

    今天去迅雷面试,是个数字转换成人民币的算法题: public class Rmb { /** * 人民币的基本信息和操作 * * @author soyoungboy * @version 1.0 * ...

  4. http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数

    http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理 例如: $data = array( 'foo'=>'bar', ' ...

  5. 浮点数转换为人名币读法字符串(JAVA)

    /*<java疯狂讲义>浮点数转换为人名币读法字符串这个用例,感觉没有考虑零的情况*/ import java.util.Arrays; public class Num2Rmb { pr ...

  6. android112 jni 把java的字符串转换成c的字符串,数组处理

    package com.itheima.charencode; import android.os.Bundle; import android.app.Activity; import androi ...

  7. delphi 浮点数转换成十六进制字符串的方法

    我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式.比如在游戏中人物的座标,经常就用浮点数来表示.怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法.       先 ...

  8. javascript将浮点数转换成整数的三个方法

    浮点数转换成整数方法有很多,本例为大家介绍常用的三个方法,如果读者想到其他好用方法,也可以交流一下   Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseI ...

  9. javascript浮点数转换成整数三种方法

    将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt位运算符Math.floor Math.ceil ...

随机推荐

  1. 零基础照样做RNA-seq差异分析

    零基础照样做RNA-seq差异分析 GCBI知识库2018-08-24 14:43:36 基因表达谱的差异分析是RNA-seq中最常见的应用.你眼中的RNA-seq差异分析或许是酱紫的,对不会编程,不 ...

  2. BZOJ1047或洛谷2216 [HAOI2007]理想的正方形

    BZOJ原题链接 洛谷原题链接 显然可以用数据结构或\(ST\)表或单调队列来维护最值. 这里采用单调队列来维护. 先用单调队列维护每一行的最大值和最小值,区间长为正方形长度. 再用单调队列维护之前维 ...

  3. 几个H5炫酷特效

    那H5里有哪些高级动效了?小编仔细体验了国内不少几个优秀H5页面作品,整理出下面几个H5页面特效.我们的H5作品如果能用上其中一两个,相信能增色不少! 1.粒子特效 —>>一键爆炸 模拟现 ...

  4. UOJ 274 温暖会指引我们前进 - LCT

    Solution 更新掉路径上温暖度最小的边就可以了~ Code #include<cstdio> #include<cstring> #include<algorith ...

  5. BUG(1):一个关于指针的bug

    是时候记录一下这个让我栽了两次的bug了. 具体情况如下: #include <stdio.h>#include <stdlib.h> struct app_info_t { ...

  6. ark是什么

    https://github.com/QuadHex/ARK/releases 0.8.0版本网络使用evpp 调用 https://www.jianshu.com/p/9f09928829ba

  7. oracle银行卡卡号计算函数

    create or replace function GetCardNoBySerialNo(v_sysacc varchar2,v_position number) return varchar2 ...

  8. SVN基本操作 (zz)

    SVN基本操作 分类: LINUX 原文地址:SVN基本操作 作者:tuyer 文章摘要:SVN 基本操作:SVN是什么 Svn是一个离线的代码管理,可以多个人一起修改,然后再将修改的内容提交到Svn ...

  9. 【Redis】使用Jedis操作Redis

    Jedis介绍 jedis就是集成了redis的一些命令操作,封装了redis的java客户端. Jedis使用 使用jedis需要引入jedis的jar包,下面提供了maven依赖 jedis.ja ...

  10. day13作业—(登录注册)

    2.写一个函数完成三次登陆功能: 用户的用户名密码从一个文件register中取出. register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行. 完成三次验证, ...