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. 调试程序时如何用syslog来打印信息

    转自:https://www.cnblogs.com/vigarbuaa/archive/2013/02/05/2892544.html Linux下C语言编程的-把程序输出信息加到系统日志里去关键词 ...

  2. python 打开文件对话框 filedialog tkinter GUI 编程

    - -读取文件的gui编程 # _*_ coding:utf-8 _*_ import tkinter from tkinter import filedialog def openfiles2(): ...

  3. EXISTS 和 IN 的区别

    exists子句的用法 select * from 表1 where exists (select * from 表2 where 表1.列名=表2.列名); exists子句返回的结果并不是从数据库 ...

  4. 三大框架中各种xml的存放位置

      web.xml中classpath:和classpath*:  有什么区别? classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar ...

  5. CRC在线计算工具

    http://www.lammertbies.nl/comm/info/crc-calculation.html

  6. kbmmw 5.06.20 发布

    经过1个多月的测试,终于发布正式版. 5.06.20 July 11 2018           Important notes (changes that may break existing c ...

  7. 第一个kbmmw for Linux 服务器

    从kbmmw 5.01 开始,就正式支持delphi 10.2 和Linux 了. 今天我们就建一个 kbmmw for linux 服务器简单说一下. 本例子基于上次的linux Daemon例子 ...

  8. centos 7 禁止root登录及更改ssh端口号

    vim /etc/ssh/sshd_config PermitRootLogin yes => PermitRootLogin no systemctl restart sshd.service ...

  9. oracle undo表空间

    查询undo表空间状态 "Bytes(M)" FROM dba_undo_extents GROUP BY tablespace_name, status; Undo表空间的状态( ...

  10. Github 快速上手实战教程

    一.实验介绍 1.1 实验内容 本次课程讲的是在实验楼的在线环境中,如何使用 Github 去管理在在线环境中使用的代码.配置.资源等实验相关文件,怎样去添加.同步和下拉在远程仓库中的实验文件,以此来 ...