`
ErHuo
  • 浏览: 21862 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

金融类金额转换

阅读更多
package util;

import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.List;

/**
 * 金融类转换
 * @author Administrator
 *
 */
public class TradePortalUtil {
	/***
	 * 将list转为数组
	 * 
	 * @param list
	 * @return
	 */
	public static String[] ListToArray(List<String> list) {
		String[] array = new String[list.size()];
		list.toArray(array);
		return array;
	}

	/**
	 * 处理金额,保留两位小数,并且整数位每三位用逗号分开
	 * 
	 * @param money
	 * @return
	 */
	public static String splitMoney(double money) {
		DecimalFormat df = new DecimalFormat("###,###,###.##");
		df.applyPattern("#,##0.00#");
		double rtnVal = Double.parseDouble(String.valueOf(money));
		return df.format(rtnVal);
	}

	/**
	 * 还原金额
	 * 
	 * @param money
	 * @return
	 * @throws ParseException
	 */
	public static double restoreMoney(String money) throws ParseException	 {
		DecimalFormat df = new DecimalFormat("###,###,###.##");
		return df.parse(money).doubleValue();
	}
	
	/**
     * 金额元转分
     * @see 注意:该方法可处理贰仟万以内的金额,且若有小数位,则不限小数位的长度
     * @see 注意:如果你的金额达到了贰仟万以上,则不推荐使用该方法,否则计算出来的结果会令人大吃一惊
     * @param amount  金额的元进制字符串
     * @return String 金额的分进制字符串
     */
    public static String moneyYuanToFen(String amount){
        if(isEmpty(amount)){
            return amount;
        }
        //传入的金额字符串代表的是一个整数
        if(-1 == amount.indexOf(".")){
            return Integer.parseInt(amount) * 100 + "";
        }
        //传入的金额字符串里面含小数点-->取小数点前面的字符串,并将之转换成单位为分的整数表示
        int money_fen = Integer.parseInt(amount.substring(0, amount.indexOf("."))) * 100;
        //取到小数点后面的字符串
        String pointBehind = (amount.substring(amount.indexOf(".") + 1));
        //amount=12.3
        if(pointBehind.length() == 1){
            return money_fen + Integer.parseInt(pointBehind)*10 + "";
        }
        //小数点后面的第一位字符串的整数表示
        int pointString_1 = Integer.parseInt(pointBehind.substring(0, 1));
        //小数点后面的第二位字符串的整数表示
        int pointString_2 = Integer.parseInt(pointBehind.substring(1, 2));
        //amount==12.03,amount=12.00,amount=12.30
        if(pointString_1 == 0){
            return money_fen + pointString_2 + "";
        }else{
            return money_fen + pointString_1*10 + pointString_2 + "";
        }
    }
    /**
     * 判断输入的字符串参数是否为空
     * @return boolean 空则返回true,非空则flase
     */
    public static boolean isEmpty(String input) {
        return null==input || 0==input.length() || 0==input.replaceAll("\\s", "").length();
    }
    
    /**
     * 金额分转元
     * @see 注意:如果传入的参数中含小数点,则直接原样返回
     * @see 该方法返回的金额字符串格式为<code>00.00</code>,其整数位有且至少有一个,小数位有且长度固定为2
     * @param amount  金额的分进制字符串
     * @return String 金额的元进制字符串
     */
    public static String moneyFenToYuan(String amount){
        if(isEmpty(amount)){
            return amount;
        }
        if(amount.indexOf(".") > -1){
            return amount;
        }
        if(amount.length() == 1){
            return "0.0" + amount;
        }else if(amount.length() == 2){
            return "0." + amount;
        }else{
            return amount.substring(0, amount.length()-2) + "." + amount.substring(amount.length()-2);
        }
    }
    

    

}

分享到:
评论

相关推荐

    大写金额转换器

    【大写金额转换器】是一种实用工具,专为金融、会计和商业领域的用户设计,能够将数字金额转换成中文大写形式。在处理财务文件、合同或者发票时,按照中国的传统,金额通常需要以中文大写来表示,以增强文档的清晰度...

    人民币大写金额转换DLL库

    2. **人民币大写金额转换**:在金融和会计领域,为了防止篡改和增强账目的清晰度,通常会将数字金额用汉字大写表示。例如,数字"1234.56"会被转换成"壹仟贰佰叁拾肆元伍角陆分"。这个DLL库提供了这样的转换功能,...

    金额转换程序java

    【标题】"金额转换程序Java"的实现是一个基础但实用的编程示例,它主要针对的是将数字金额转换为中文大写的表示方式。在金融、会计等领域,中文大写金额的表示是常见的需求,用于避免数字混淆,提高账目核对的准确性...

    delphi金额转换(有报音功能)

    本项目“delphi金额转换(有报音功能)”是利用Delphi平台设计的一个实用工具,它专注于金融领域中的一项重要任务:将小写的数字金额转换为规范的大写汉字表示,并且具有语音播报的功能,这在财务操作、银行系统或零售...

    人民币金额转换源代码

    在编程领域,人民币金额转换是一项常见的任务,尤其是在财务软件或者电子商务系统中。这个"人民币金额转换源代码"可能包含了处理这种转换的高效算法和最佳实践。让我们深入探讨一下相关知识点。 首先,人民币金额的...

    将金额转换为中文传统形式总结

    在这个场景下,"工具类"可能包含一个或多个静态方法,用于将数字金额转换为中文文字表示。例如,我们可以创建一个名为`MoneyFormat`的工具类,其中包含一个名为`toChinese`的方法,该方法接受一个数字作为输入,返回...

    非常实用的人民币金额转换

    这个“非常实用的人民币金额转换”工具就是这样一个高效、便捷的解决方案,专为处理人民币金额转换的需求而设计。它可以帮助用户轻松地进行人民币与其他货币之间的换算,极大地提高了工作效率。 在描述中提到,该...

    C#商品金额大小写转换

    在C#编程中,将商品金额的阿拉伯数字转换为汉字大写形式,是...了解以上知识点后,你可以编写一个C#函数,实现将输入的阿拉伯数字金额转换为汉字大写。记得在实现过程中充分考虑各种情况,以保证转换的准确性和可靠性。

    ATM自动取款机&金额转换成大写

    关于金额转换成大写,这是一个额外的功能,用于满足金融交易中对金额表示的规范性要求。在Java中,可以编写一个辅助方法,将数字转换为中文大写的表示,例如“壹”、“贰”等。这个过程可能涉及到字符串处理和数字...

    金额大小写转换程序

    金额大小写转换在金融领域应用非常广泛,许多票据都是使用大写数字填写的,这里在实现金额大小写转换时,首先定义一个大写金额的数组,然后通过string类的Substring方法截取小写金额的每一位数字,在大写金额的数组...

    VC开发的金额大小写转换

    同时,考虑到金额转换的特殊性,如“10”应该转换成“拾”,而不是“壹零”,需要在特定情况下进行合并处理。此外,还要处理诸如“123.45”这样的小数,确保整数部分和小数部分都能正确转换。 在实现这个功能时,...

    金额转换方法

    总之,"金额转换方法"这个主题涵盖了数字到中文大写和国际通用逗号分隔格式的转化,这些转换在金融软件开发中非常关键。`AmountOption.cs`文件很可能是实现这些功能的代码载体,通过精心设计的函数或类来确保金额的...

    转换成中文大写金额

    在IT行业中,尤其是在财务软件开发或者金融系统的编程中,将数字金额转换为中文大写是一种常见的需求。这有助于避免因数字书写错误导致的财务纠纷,因为中文大写的金额更不容易被篡改。在这个场景中,"MoneyFormat" ...

    关于金额大,小写转换的问题.rar

    这通常涉及到金融类应用或者财务报表的展示,确保数字格式规范、清晰且符合财务标准。在本例中,"关于金额大,小写转换的问题" 提到了一个具体的挑战,即如何使用JavaScript(JS)来处理这一转换。下面我们将深入探讨...

    人民币金额小写转换大写

    此外,还有特殊字符如“元”、“整”等在金额转换中也常出现,代表货币单位。 在Java编程中,实现这个功能通常会涉及到以下几个步骤: 1. **定义字符映射表**:创建一个Map或数组,将小写数字('0'-'9')映射到...

    支票金额大写转换示例(金额大写转换器)

    本示例主要介绍如何将阿拉伯数字的支票金额转换为中文大写,这通常被称为"支票金额大写转换"或"金额大写转换器"。 在Java编程中,我们可以创建一个工具类来实现这个功能。例如,给出的代码片段展示了这样一个工具类...

    c#经典金额大小写转换

    在金融系统、会计软件以及银行应用程序中,经常需要将阿拉伯数字表示的金额转换成汉字大写形式,以确保正式文档(例如支票、发票等)中的金额不易被篡改。C# 提供了丰富的编程接口来实现这一需求。本文将基于提供的...

    转换人民币大写金额

    本示例中的C#代码提供了一个解决方案,允许开发者将数字金额转换为标准的中文大写格式。 在C#中,这个功能通常通过自定义方法实现,该方法接收一个数字作为输入,然后将其转换为相应的中文大写文字表示。以下是一些...

    vc实现数字转大写人民币金额 ,编辑框子类化灰色提示输入

    这个功能对于财务软件或者银行系统等金融相关的应用尤为实用,因为它可以确保用户输入的金额符合标准格式,减少人为错误。 首先,我们需要理解数字转大写人民币金额的规则。人民币大写金额的表示法包括:零(零)、...

Global site tag (gtag.js) - Google Analytics