java实现人民币大小写转换方法分享_java

复制代码 代码如下:

/**
     * 人民币转成大写
     *
     * @param value
     * @return String
     */
    public static String hangeToBig(double value)
    {
        char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示
        char[] vunit = { '万', '亿' }; // 段名表示
        char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示
        long midVal = (long) (value * 100); // 转化成整形
        String valStr = String.valueOf(midVal); // 转化成字符串
        String head = valStr.substring(0, valStr.length() - 2); // 取整数部分
        String rail = valStr.substring(valStr.length() - 2); // 取小数部分
        String prefix = ""; // 整数部分转化的结果
        String suffix = ""; // 小数部分转化的结果
        // 处理小数点后面的数
        if (rail.equals("00"))
        { // 如果小数部分为0
            suffix = "整";
        }
        else
        {
            suffix = digit[rail.charAt(0) - '0'] + "角" + digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来
        }
        // 处理小数点前面的数
        char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
        char zero = '0'; // 标志'0'表示出现过0
        byte zeroSerNum = 0; // 连续出现0的次数
        for (int i = 0; i < chDig.length; i++)
        { // 循环处理每个数字
            int idx = (chDig.length - i - 1) % 4; // 取段内位置
            int vidx = (chDig.length - i - 1) / 4; // 取段位置
            if (chDig[i] == '0')
            { // 如果当前字符是0
                zeroSerNum++; // 连续0次数递增
                if (zero == '0')
                { // 标志
                    zero = digit[0];
                }
                else if (idx == 0 && vidx > 0 && zeroSerNum < 4)
                {
                    prefix += vunit[vidx - 1];
                    zero = '0';
                }
                continue;
            }
            zeroSerNum = 0; // 连续0次数清零
            if (zero != '0')
            { // 如果标志不为0,则加上,例如万,亿什么的
                prefix += zero;
                zero = '0';
            }
            prefix += digit[chDig[i] - '0']; // 转化该数字表示
            if (idx > 0)
                prefix += hunit[idx - 1];
            if (idx == 0 && vidx > 0)
            {
                prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿
            }
        }
        if (prefix.length() > 0)
            prefix += '圆'; // 如果整数部分存在,则有圆的字样
        return prefix + suffix; // 返回正确表示
    }

时间: 2024-09-21 00:46:09

java实现人民币大小写转换方法分享_java的相关文章

linux下执行java程序的sh脚本分享_java

今天大概耗费了快一天的时间研究怎么用脚本执行java程序,终于实现了,分享一下 (1)在linux下写一个.sh文件 (2)文件内容如下: 复制代码 代码如下: #!/bin/sh         //bash文件头 APP_HOME=/home/blmcrm/crm/A      //要执行的java文件中bin文件的上一个目录,我的目录是/home/blmcrm/crm/A/bin/blm......(后面不写了),总之就是写bin目录前面的部分,因为jar包在bin目录里面,如果不在bin

java图片添加水印实例代码分享_java

本文为大家介绍了java图片添加水印实例代码,java实现水印还是非常方便的,水印可以是图片或者文字,具体内容如下 package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io

java实现动态代理示例分享_java

复制代码 代码如下: import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy; public class LogHandler implements InvocationHandler {    private Object delegate;     public Object bind(Object delegate) {       

java生成随机数(字符串)示例分享_java

用来生成简单的随机java生成随机数,大小+数字.没特符 复制代码 代码如下: package passwords;import java.util.Random;public class pwdGen { private Random rdseed=new Random();  /**  *@param  *length  password length;  *@param  *letters  boolean non-capital letters combination control; 

java实现sunday算法示例分享_java

字符串匹配查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore).两个算法在最坏情况下均具有线性的查找时间.但是在实用上,KMP算法并不比最简单的C库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5倍(未亲身实践).但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法Sunday算法. Sunday算法的思想和BM算法中的坏字符思想非常类似.差别只是在于Sunday算法在匹配失败之后,是取目标串中当前和

Java排序实现的心得分享_java

1.概述排序和查找是程序设计里的两类非常基本的问题,而现在也存在很多经典的算法用于解决这两类问题,本文主要对java中排序算法实现进行一个基本的探讨,希望能够起到抛砖引玉的作用.在此之前,首先问各位几个问题:你能写出一个正确的快排吗?快排在什么情况下真正的快?你的快排足够快吗?还可以进一步优化吗?带着这些问题,我们来看看jre7中快排是如何实现的吧. Jre7中排序的实现类是DualPivotQuickSort.java,相比jre6有一些改变,主要发生在两个地方,一个是insertion so

java连接orcale数据库示例分享_java

database.properties 复制代码 代码如下: jdbc.driver_class=oracle.jdbc.driver.OracleDriverjdbc.connection.url=jdbc:oracle:thin:@localhost:1521:orcljdbc.connection.username=scottjdbc.connection.password=tiger ConfigManager.java 复制代码 代码如下: import java.io.IOExcep

java实现京东登陆示例分享_java

复制代码 代码如下: package com.lkb.test; import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map; import org.apache.http.HttpResponse;import org.apache.http.client.ResponseHandler;import org.ap

java使用颜色选择器示例分享_java

复制代码 代码如下: package com.liuxing.test;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JColorChooser;import javax.swing.JFrame;import javax.swing.JLabel;import ja