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. python基础易错题

    1.以下代码输入什么: class Person: a = 1 def __init__(self): pass def getAge(self): print(__name__) p = Perso ...

  2. RAPID程序设计

    1.ABB机器人软件 RobotWare 是ABB提供的机器人系列应用软件的总称. RobotStudio是ABB公司自行开发的机器人模拟软件, 能在PC机上模拟几乎所有型号的ABB 机器人几乎所有的 ...

  3. [ES]ES集群内容灾

    ES是如何实现节点容灾的? 1. ES中的index,首先会进行分片,每一个分片数据一般都会有自己的副本数据,ES分配分片的策略会保证同一个分片数据和自己的副本不会分配到同一个节点上2. 当集群中的某 ...

  4. maven mirror , profile , snapshot 和release

    1. settings.xml 配置的mirror <mirrors> <mirror> <id>Nexus</id> <name>nexu ...

  5. 【转】C#异步的世界【上】

    [转]C#异步的世界[上] 新进阶的程序员可能对async.await用得比较多,却对之前的异步了解甚少.本人就是此类,因此打算回顾学习下异步的进化史. 本文主要是回顾async异步模式之前的异步,下 ...

  6. 团队-Python 爬取豆瓣电影top250-成员简介及分工

    姓名:周鑫 班级:软件6班 团队名称:咣咣踹电脑 擅长:Python,java 分工:编写数据库

  7. unity延时函数

    新建一个工具类 public class DelayToInvoke : MonoBehaviour{ public static IEnumerator DelayToInvokeDo(Action ...

  8. html--笔记day03

    html--笔记day03 1.结构标记 1.<header>元素 <header></header> ==> <div id="header ...

  9. 查阅JDK,collection与collections区别大

    看起来collection,和collections相像,但其中的差别之大你造吗? Collection是Collection层次结构中的根接口.Collection表示一组对象,这也对象也称为col ...

  10. ThinkPHP3.2.3:使用模块映射隐藏后台真实访问地址

    例如:项目应用目录/Application下模块如下,默认后台模块为Admin 现在需要修改后台模块的访问地址,以防被别有用心的人很容易就猜到,然后各种乱搞... (在公共配置文件/Applicati ...