`
chenqian
  • 浏览: 79444 次
  • 性别: Icon_minigender_1
  • 来自: 湘潭
社区版块
存档分类
最新评论

数字转换金额

阅读更多
package com.chenqian.test;

import java.awt.image.BufferStrategy;

import java.util.Scanner;

public class NumberToUpper {

 /** 大写数字 */

 private static final char[] big = "零壹贰叁肆伍陸柒捌玖".toCharArray();

 /** 整数部分的单位 */

 private static final char[] iunit = "元拾佰仟万亿".toCharArray();

 /** 小数部分的单位 */

 // private static final char[] dunit = {'角','分'};

 private static final String toChinese(String num) {

  char[] arabia = num.toCharArray();

  int length = num.length();

  StringBuffer result = new StringBuffer(length * 2);

  for (int i = 0; i = 9) {

   if (varlen == 9)

    c = iunit[5];

   else

    c = iunit[varlen - 9];

  } else if (varlen >= 5) {

   if (varlen == 5)

    c = iunit[4];

   else

    c = iunit[varlen - 5];

  } else

   c = iunit[varlen - 1];

  return c;

 }

 public static void main(String[] args) {

  System.out.print("请输入需要转换的金额(13位整数):");

  Scanner scanner = new Scanner(System.in);

  String number = scanner.nextLine();

  

  String result;

  // String expression = "\\d{1,13
}";

  String expression = "[1-9]\\d{0,12}";//正则表达式

  if (number.matches(expression))

   result = toChinese(number);

  else

   result = "输入有误,无法计算";

  System.out.println(result);

  

  System.out.print("是否继续(Y/N):");

  String yn = scanner.next();

  if(yn.equalsIgnoreCase("y"))

   main(args);

  else

   System.exit(0);

   

 }

}
分享到:
评论
3 楼 bardo 2011-04-17  
建议看看这个代码
http://bardo.iteye.com/admin/blogs/983559
2 楼 ychda 2008-09-11  
格式化一下吧。
程序不错。
1 楼 ychda 2008-09-11  
package com.chenqian.test;

import java.util.Scanner;

public class NumberToUpper {
    /** 大写数字 */
    private static final char[] big = "零壹贰叁肆伍陸柒捌玖".toCharArray();

    /** 整数部分的单位 */
    private static final char[] iunit = "元拾佰仟万亿".toCharArray();

    /** 小数部分的单位 */
    // private static final char[] dunit = { '角', '分' };
    private static final String toChinese(String num) {
        char[] arabia = num.toCharArray();
        int length = num.length();
        StringBuffer result = new StringBuffer(length * 2);
        for (int i = 0; i < length; i++) {
            int j = Character.getNumericValue(arabia[i]);
            int varlen = length - i;

            if (j == 0) {
                if (varlen == 9 || varlen == 5 || varlen == 1)// 例外条件
                    result.append(addUnit(varlen));
                if (i < length - 1)
                    if (Character.getNumericValue(arabia[i + 1]) != 0)
                        result.append(big[0]);
            } else {
                result.append(big[j]);
                result.append(addUnit(varlen));
            }
        }
        return result.toString();
    }

    /*
     * 添加单位
     */
    private static char addUnit(int varlen) {
        char c;
        if (varlen >= 9) {
            if (varlen == 9)
                c = iunit[5];
            else
                c = iunit[varlen - 9];
        } else if (varlen >= 5) {
            if (varlen == 5)
                c = iunit[4];
            else
                c = iunit[varlen - 5];
        } else
            c = iunit[varlen - 1];
        return c;
    }

    public static void main(String[] args) {
        System.out.print("请输入需要转换的金额(13位整数):");
        Scanner scanner = new Scanner(System.in);
        String number = scanner.nextLine();

        String result;
        // String expression = "\\d{1,13}";
        String expression = "[1-9]\\d{0,12}";// 正则表达式
        if (number.matches(expression))
            result = toChinese(number);
        else
            result = "输入有误,无法计算";
        System.out.println(result);

        System.out.print("是否继续(Y/N):");
        String yn = scanner.next();
        if (yn.equalsIgnoreCase("y"))
            main(args);
        else
            System.exit(0);
    }
}

相关推荐

    数字转换成金额大写

    在IT行业中,尤其是在财务软件开发或者自动化报表系统中,经常需要将数字转换成中文大写的金额形式,以便符合中国的财务规范。"数字转换成金额大写"是一个常见的需求,特别是在Delphi这样的编程环境中。Delphi是一款...

    C# - 阿拉伯数字金额转换为繁体数字金额

    这个特定的项目“C# - 阿拉伯数字金额转换为繁体数字金额”专注于一个常见的财务处理任务,即把通常用阿拉伯数字表示的货币金额转化为繁体中文的表示方式。这在中文环境中特别有用,因为繁体数字在正式的商业文档和...

    将数字金额转换为中文大写金额

    将数字金额转换为中文大写金额将数字金额转换为中文大写金额将数字金额转换为中文大写金额

    将阿拉伯数字转换为汉字数字或者汉字大写金额

    1、该dll能将阿拉伯数字转换为汉字数字或者中文大写金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)...

    Asp.net C# 数字货币金额转换为中英文金额写法

    在Asp.net C#开发中,经常需要处理与货币相关的数据,这包括将数字金额转换成规范的中英文表示方式,以满足财务报告、发票或合同等场景的需求。本资源提供的程序实现了一种高效的方法来完成这个任务。下面将详细阐述...

    金额阿拉伯数字转换中文大写(全)

    本文将详细阐述“金额阿拉伯数字转换中文大写”的相关知识点。 1. **中文大写数字系统**: - 在中文中,阿拉伯数字1至9对应的中文大写分别是壹、贰、叁、肆、伍、陆、柒、捌、玖。 - 零用汉字零表示,整数位与...

    java 正则数字金额转换为大写

    输入字符,通过正则验证是否为金额不超过万亿精确到小数点后两位,然后将数字转换为大写 包括后台java正则验证及前台js验证 请输入一个数字(精确到小数点后两位): fdsa54325.54 fdsa54325.54 false 请输入一个...

    js数字转换为大写金额

    js中使用Arabia_to_Chinese方法,如: var a=Arabia_to_Chinese(1183.5); //返回壹仟壹佰捌拾叁元零伍角整

    输入数字转换为大写金额输出

    ### 输入数字转换为大写金额输出 #### 背景介绍 在财务系统、银行交易以及其他需要处理货币的场合中,经常会遇到将数字转换成大写金额的需求。例如,在开具支票时,需要将数字金额转换成大写形式,以避免被篡改。...

    将阿拉伯数字金额转换为中国传统形式人民币值

    自己写的将阿拉伯数字金额转换为中国传统形式人民币值的小程序,亲测可用!

    阿拉伯数字金额转换为大写数字金额

    整数部分的转换可以使用循环和条件判断,将每个数字转换成对应的汉字大写。小数部分的转换类似,但要注意角和分的处理。 ```java public String toChinese() { String[] parts = num.split("\\."); String ...

    金额转换,中文金额转数字金额,数字金额转中文金额

    金额转换,中文金额转数字金额,数字金额转中文金额,中文金额转数字金额从字符串中获取中文大写金额或是数字金额,不支持小数,中文金额不支持混写,如 五千零壹十万元,不支持转换会输出0,字符串可以不用截取,...

    金额大写_数字金额转换_

    在IT行业中,尤其是在财务软件和电子商务系统开发中,将数字金额转换为汉字大写是一种常见的需求。这主要是因为在中国的财务规范中,正式的财务单据(如发票、支票等)上的金额通常需要以汉字大写的形式表示,以防止...

    小写数字转换大写金额

    在IT领域,尤其是在网页开发中,经常需要将用户输入的小写数字转换为大写金额格式,这主要用于财务、发票或银行交易等应用场景。这个过程可以通过JavaScript实现,利用JavaScript的事件处理和字符串操作功能。在本例...

    java将数字转换成大写字母

    Java 中实现数字金额到中文大写字符的转换是指将阿拉伯数字转换成中文大写的过程。本文将详细介绍 Java 实现数字金额到中文大写字符的转换的知识点。 知识点一: 数字金额到中文大写字符的转换的需求 在实际应用中...

    Java人民币金额数字转换成大写

    Java 人民币金额数字转换成大写 Java 人民币金额数字转换成大写是 Java 面试中最常见的问题之一。本文将详细介绍如何使用 Java 实现人民币金额数字转换成大写的解决方案。 Java 中的 NumberFormat 类 在 Java 中...

    小写金额转换大写金额函数

    create or replace function sf_get_money(p_num in number default null) 此函数处理数字小写金额转换为大写金额 

    数字金额转换为中文汉字金额(plsql function)

    数字金额转换为中文汉字金额:例如select num_to_zhs(123456789.54321) from dual; 我们调用该function可以将金额"123456789.54321"转换为“壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元伍角肆分叁贰壹”。

    vb数字、金额大小写转换源码

    1. `ToChineseNumber`: 这个函数将单个阿拉伯数字转换为对应的中文大写数字。 2. `ToChineseAmount`: 这个函数用于将整个金额字符串转换为中文大写形式。它会处理每个数位,并根据规则插入适当的单位。 3. 特殊情况...

    数字金额转换成中文金额的js

    数字金额转换成中文金额的js,希望给大家带来帮助

Global site tag (gtag.js) - Google Analytics