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. 图片延时加载原理 和 使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)

    图片加载技术分为:图片预加载和图片延时加载. javascript图片预加载和延时加载的区别主要体现在图片传输到客户端的时机上,都是为了提升用户体验的,延时加载又叫懒加载.两种技术的本质:两者的行为是 ...

  2. CH6901 骑士放置

    原题链接 和棋盘覆盖(题解)差不多.. 同样对格子染色,显然日字的对角格子是不同色,直接在对应节点连边,然后就是二分图最大独立集问题. #include<cstdio> #include& ...

  3. Lazarus下面的javascript绑定另外一个版本bug修正

    Lazarus下面的javascript绑定另外一个版本bug修正 从svn 检出的代码有几个问题 1.fpcjs.pas 单元开始有 {$IFDEF FPC} {$MODE delphi} {$EN ...

  4. swift 属性值变化

    如果创建了一个结构体的实例并将其赋值给一个常量,则无法修改该实例的任何属性,即使有属性被声明为变量也不行. 这种行为是由于结构体(struct)属于值类型.当值类型的实例被声明为常量的时候,它的所有属 ...

  5. Java运行环境eclipse配置环境变量 sql server登录时用的账户以及注册码

    2019/1/18 13:44:53a:右键点击计算机  →  选择属性  →  更改设置  →  点击高级  →  点击环境变量  →  创建名为JAVA_HOME的环境变量  →  将jdk所在的 ...

  6. asp.net query string 及 form data 遇到的编码问题

    当遇到此问题时,脑海里闪过的第一个解决方案是设置 web.config 的编码.但一想,就某一个页面的需求而导致其他跟着妥协,不是好的解决方案.于是网上搜索答案,下面做个小分享,遗憾的是研究不够深入, ...

  7. 【机器学习】从分类问题区别机器学习类型 与 初步介绍无监督学习算法 PAC

    如果要对硬币进行分类,我们对硬币根据不同的尺寸重量来告诉机器它是多少面值的硬币 这种对应的机器学习即使监督学习,那么如果我们不告诉机器这是多少面额的硬币,只有尺寸和重量,这时候让机器进行分类,希望机器 ...

  8. 使用jackson美化输出json/xml

    转载:http://www.cnblogs.com/xiwang/ 如何使用jackson美化输出json/xml 1.美化POJO序列化xml 下面将POJO列化为xml并打印. Person pe ...

  9. Alpha 冲刺 (1/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作,对多个目标检测及文字识别模型进行评估.实验,选取较 ...

  10. canvas 实现贪吃蛇游戏

    var canvas = document.getElementById('canvas'); var cxt = canvas.getContext('2d'); // 定时器 var timer; ...