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. redis 数据类型为string命令整理以及示例

    #设置值 SET key value [EX seconds] [PX milliseconds] [NX|XX] SET命令加上选项已经可以完全取代SETNX, SETEX, PSETEX的功能,所 ...

  2. dataTables的学习笔记 -- 未开启服务器数据模式

    官方网站:http://www.datatables.net/ (1)未开启服务器数据模式(即"bServerSide" : false),数据会从后台直接全部获取,然后在前台全部 ...

  3. 放大Button热区的方法哟

    //添加图片不能用backgroundimage [btn setImage:image5 forState:]; //然后 btn.imageEdgeInsets = UIEdgeInsetsMak ...

  4. Vim 基本配置

    1.关闭vi的一致性模式 set nocompatible 2.配置backspace的工作方式 set backspace=indent,eol,start 3.显示行号 set number 4. ...

  5. Nginx 如何限定IP访问

    在nginx.conf中的server限制段中.deny IP.表示需要限制该IP不可访问.allow IP表示权该IP可以访问. 如上图.表示阻止192.168.1.122的IP的访问.那当然也可以 ...

  6. ipv6地址累加函数

    #include <stdio.h> #include <arpa/inet.h> int main() { int i; int ret; struct in6_addr a ...

  7. 去掉tableView空白区域的分割线

    //把多余的分割线去掉 UIView * footerView = [[UIView alloc] initWithFrame:CGRectZero]; self.tableView.tableFoo ...

  8. [Hbase]Hbase知识大全

    HBase简介 是一个构建在HDFS上的分布式列存储系统:HBase是基于Google BigTable模型开发的,典型的key/value系统:HBase是Apache Hadoop生态系统中的重要 ...

  9. CSS-弹性布局-动画-过渡

    1.弹性布局 1.项目的属性 该组属性只能设置在某项目元素上,只控制一个项目,是不影响容器以及其他项目的效果. 1.order 作用:定义项目的排列顺序,值越小,越靠近起点,默认值是0 取值:整数数字 ...

  10. mysqldb mysql_config

    在安装mysqldb Python的时候会用到mysql_config,但是正常安装的MySQL环境下是没有这个文件的,这个文件在Linux下是可执行文件,所以需要到mysql官方网站上下载MySQL ...