`
ErHuo
  • 浏览: 21868 次
  • 性别: 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);
        }
    }
    

    

}

分享到:
评论

相关推荐

    Excel在金融行业中的高效应用.docx

    - **快速转换文本型数字**:利用VALUE或--(负负)运算符将文本形式的数字转换成数值类型。 - **快速删除数据中的特殊字符**:使用SUBSTITUTE或TRIM函数清除文本中的空格或其他特殊字符。 - **快速填充数据**:利用...

    《Excel在金融行业中的高效应用》.docx

    - **快速转换文本型数字**:解决常见的文本型数字问题,将其转换为真正的数值类型,以便进行计算和分析。 - **快速删除数据中的特殊字符**:清除数据中的无用字符,如空格、标点符号等,保证数据的纯净度。 ##### 2...

    ACIItoBCD.rar

    在IT行业中,字符编码转换是数据处理的重要环节,特别是在金融、电信、社保等对数据安全性与精确性要求极高的领域。ACII(American Standard Code for Information Interchange,美国信息交换标准代码)和BCD...

    转换成中文大写金额

    在IT行业中,尤其是在财务软件开发或者金融系统的编程中,将数字金额转换为中文...通过对这两个类的学习,开发者可以了解到如何处理特定的业务需求,同时加深对Java编程中字符串处理、数据类型转换和函数设计的理解。

    C#把金额数据从小写转换为大写,C#源代码

    接下来,我们将实现主要的转换函数,这个函数接受一个字符串类型的金额(小写形式),并返回转换后的字符串(大写形式): ```csharp public static string ConvertToChinese(string amount) { // 去除金额中的非...

    DX_RMB.rar_人民币_人民币大写

    1. 函数的输入参数类型:可能需要一个表示金额的字符串或者数值类型。 2. 返回值类型:通常是转换后的大写金额字符串。 3. 错误处理:函数可能需要处理无效输入或者超出预期范围的数值。 4. 性能优化:如果处理大量...

    英文大写金额.rar

    在IT行业中,编程语言Delphi是一种基于Pascal的强类型、面向对象的开发工具,广泛应用于桌面应用软件的开发。本资源"英文大写金额.rar"聚焦于一个特定的编程需求,即如何将阿拉伯数字表示的金额转换为符合英文书写...

    转人民币大写(源码)

    在IT行业中,编程语言C#是一种广泛应用于开发Windows桌面应用、Web应用以及移动...通过学习和理解这个项目,开发者不仅可以掌握C#中的字符串处理和逻辑控制,还可以深入了解金融行业的需求,提升自己的编程实践能力。

    完整图文版Python高级教程 Python在金融大数据领域应用 08 第八讲 金融随机模拟Python实现(共27页).ppt

    1. **Python金融应用概述**:这部分介绍了Python在金融行业的基本应用,包括数据清洗、数据分析、建模和可视化,强调了Python的易用性和丰富的库资源。 2. **基本数据类型与结构**:讲解了Python中的基本数据类型如...

    正则一则 将金额转换成人民币大写的代码

    总之,这段代码提供了一种利用正则表达式和字符串处理技巧将金额从数字形式转换为中文大写的方式,适用于处理金融、会计等领域的应用。这种方法虽然简洁,但可能不适用于所有情况,例如无法处理非标准格式的金额字符...

    C#帮助类库

    10. **ConvertHelper.cs**:转换助手类,可能包含各种类型之间的转换方法,如字符串转数值类型、日期类型等,简化数据类型转换的过程。 这些类库文件的集合为C#开发者提供了丰富的功能,帮助他们在处理常见问题时...

    赛维cobol面试

    在COBOL中,数据存储和处理是通过数据描述段(DDL)来定义的,其中包含了各种数据类型,包括数值类型。 2. COMP数据类型 COMP,全称为Compiled Binary,是COBOL中的一种数值数据类型,用于存储无符号二进制整数。它...

    NumTextBox.rar_float

    "NumTextBox"是一个扩展了TextBox功能的控件,它添加了对不同数值类型(如float和double)的输入验证。当用户在该控件中输入数据时,内部的验证逻辑会实时检查输入是否合法,如果是非法输入,如非数字字符或超出数值...

    数字处理工具.docx

    在这个方法中,它将传入的Double类型的数值格式化为带有逗号分隔符的字符串,便于阅读大数字。例如,数字123456789会被转换为"1,234,567,890"。这种格式常用于财务报告和会计文档中。 2. **数字转当前货币会计计数*...

    VC++金额编辑框

    转换过程中需注意,根据金融行业规则,特定数值(如10、20等)的表示方式可能会有所不同。 4. **事件处理** 当用户在金额编辑框中输入时,需要监听相关的输入事件,如OnChange事件。一旦检测到输入,就触发格式化...

    ISO8583标准资料以及实现代码

    ISO8583标准是金融行业内广泛使用的报文交换协议,尤其在自动取款机(ATM)和其他电子支付系统中。这个标准定义了金融交易数据的结构和编码规则,确保不同金融机构之间的通信准确无误。下面将详细介绍ISO8583的相关...

    将 TRTH 权益数据转换为结构体数据:data2struct-matlab开发

    这一步通常会涉及一些数据类型转换,比如将字符串转换为数值。 5. **性能优化**:在处理大量数据时,MATLAB的内存管理至关重要。可以使用`cell`数组代替结构体,或者利用`struct2cell`和`cell2struct`函数进行转换...

    DoubleToText - MetaTrader 5程序库.zip

    在IT行业中,MetaTrader是一个非常知名的交易平台,特别是对于金融市场的交易者和开发者而言。MetaTrader 5(MT5)是该平台的最新版本,提供了一系列先进的功能和技术分析工具,允许用户进行自动化交易、定制指标...

    iso8583实例解析银联报文(java)

    ISO8583报文是金融行业内广泛使用的通信协议,主要用于银行卡交易的处理,包括但不限于ATM取款、POS消费、转账等业务。这个实例主要针对的是如何在Java环境中解析这种报文。以下是对该实例的详细解读: 一、ISO8583...

Global site tag (gtag.js) - Google Analytics