java开发金融数字_金融记数法 普通数字 相互转换

importjava.beans.BeanInfo;importjava.beans.Introspector;importjava.beans.PropertyDescriptor;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.text.DecimalFormat;importjava.text.NumberFormat;public classOlogyCount {/*** 金融记数法转换成普通数字型。

*
例如 132,000,123.00 转换后为 132000123.00

*@paramdata - 要转换的数字字符串

*@returnString - 返回转换后的数字字符串*/

public staticString finalToNormal(String data) {if(data.trim()==null||data.trim().equals(""))return "";//String newData = data.replaceAll(",", "");//since jdk 1.4

String newData =data;int index = newData.indexOf(',');while(index != -1){

newData= newData.substring(0, index) + newData.substring(index+1);

index= newData.indexOf(',');

}/*int pos = newData.lastIndexOf('.');

int len = 0; //小数位数

if (pos != -1) {

len = newData.length() - 1 - pos;

}

try {

double d = Double.parseDouble(newData);

NumberFormat form = NumberFormat.getInstance();

String mask = "###0";

if (len > 0) {

mask = "###0.";

for (int i = 0; i < len; i++) {

mask = mask + "0";

}

}

((DecimalFormat) form).applyPattern(mask);

newData = form.format(d);

} catch (Exception e) {

e.printStackTrace();

}*/

returnnewData;

}/*** 普通数字型转换成金融记数法。

*
例如 132000123.00 转换后为 132,000,123.00

*@paramdata - 要转换的数字字符串

*@returnString - 返回转换后的数字字符串*/

public staticString normalToFinal(String data) {if(data.trim()==null||data.trim().equals(""))return "";int pos = data.lastIndexOf('.');int len = 0; //小数位数

if (pos != -1) {

len= data.length() - 1 -pos;

}try{double d =Double.parseDouble(data);

NumberFormat form=NumberFormat.getInstance();

String mask= "#,##0";if (len > 0) {

mask= "#,##0.";for (int i = 0; i < len; i++) {

mask= mask + "0";

}

}

((DecimalFormat) form).applyPattern(mask);returnform.format(d);

}catch(Exception e) {

e.printStackTrace();

}return null;

}/*** 普通数字型转换成金融记数法。

*
例如 132000123.00 转换后为 132,000,123.00

*
小数点保留两位

*@paramdata - 要转换的数字

*@returnString - 返回转换后的数字字符串*/

public static String normalToFinal(doubledata) {try{

NumberFormat form=NumberFormat.getInstance();

String mask= "#,##0.00";

((DecimalFormat) form).applyPattern(mask);returnform.format(data);

}catch(Exception e) {

e.printStackTrace();

}return null;

}/*** Bean 中普通数字型转换成金融记数法。

*
小数点保留两位

*@paramobj - 要转换的对象

*@paramobj - 不要转换的属性集合

*@returnString - 返回转换后的数字字符串对象*/

public static Object beanToNoFinal(Object obj,String jH[]) throwsException{

Class type=obj.getClass();boolean flag=false;try{//*********获得BEAN 的BEAN信息

BeanInfo info =Introspector.getBeanInfo(type);//*********通过BEAN的信息获得性质特制集合

PropertyDescriptor[] props =info.getPropertyDescriptors();//*********循环传递数据

for (int i = 0; i < props.length; i++) {

flag=false;//*********获得第1个BEAN的每个属性名与GET方法

String name =props[i].getName();

Method getMethod=props[i].getReadMethod();//**********如果获得的属性名是jH含有的属性名 把标志设置为真!

for(int s=0;s

}if(!flag){//*********获得第BEAN的 SET方法

Method setMethod =props[i].getWriteMethod();if(getMethod.invoke(obj,null)==null)setMethod.invoke(obj,new Object[]{"0"});

setMethod.invoke(obj,new Object[]{OlogyCount.normalToFinal(Double.valueOf(getMethod.invoke(obj,null).toString()).doubleValue())});

}

}

}catch(Exception e){throw new Exception("获得对象转换科学计算法出错!");

}returnobj;

}/*** 金融记数法换成普通数字型转。

*
小数点保留两位

*@paramobj - 要转换的对象

*@paramobj - 不要转换的属性集合

*@returnString - 返回转换后的数字字符串对象*/

public static Object beanGetNoFinal(Object obj,String jH[]) throwsException{

Class type=obj.getClass();boolean flag=false;try{//*********获得BEAN 的BEAN信息

BeanInfo info =Introspector.getBeanInfo(type);//*********通过BEAN的信息获得性质特制集合

PropertyDescriptor[] props =info.getPropertyDescriptors();//*********循环传递数据

for (int i = 0; i < props.length; i++) {

flag=false;//*********获得第1个BEAN的每个属性名与GET方法

String name =props[i].getName();

Method getMethod=props[i].getReadMethod();//**********如果获得的属性名是jH含有的属性名 把标志设置为真!

for(int s=0;s

}if(!flag){//*********获得第BEAN的 SET方法

Method setMethod =props[i].getWriteMethod();if(getMethod.invoke(obj,null)==null)setMethod.invoke(obj,new Object[]{"0"});

setMethod.invoke(obj,new Object[]{new String(OlogyCount.finalToNormal(getMethod.invoke(obj,null).toString().trim()))});

}

}

}catch(Exception e){throw new Exception("获得对象科学计算法转换数字出错!");

}returnobj;

}/*** Bean 中普通数字型转换成金融记数法。

*
小数点保留两位

*@paramobj - 要转换的对象

*@paramobj - 要转换的属性集合

*@returnString - 返回转换后的数字字符串对象*/

public static Object beanToFinal(Object obj,String jH[]) throwsException{

Class type=obj.getClass();boolean flag=false;try{//*********获得BEAN 的BEAN信息

BeanInfo info =Introspector.getBeanInfo(type);//*********通过BEAN的信息获得性质特制集合

PropertyDescriptor[] props =info.getPropertyDescriptors();//*********循环传递数据

for (int i = 0; i < props.length; i++) {

flag=false;//*********获得第1个BEAN的每个属性名与GET方法

String name =props[i].getName();

Method getMethod=props[i].getReadMethod();//**********如果获得的属性名是jH含有的属性名 把标志设置为真!

for(int s=0;s

}// if(flag){//*********获得第BEAN的 SET方法

Method setMethod =props[i].getWriteMethod();if(getMethod.invoke(obj,null)==null)setMethod.invoke(obj,new Object[]{"0"});

setMethod.invoke(obj,new Object[]{OlogyCount.normalToFinal(Double.valueOf(getMethod.invoke(obj,null).toString()).doubleValue())});//System.out.println(name+"---"+getMethod.invoke(obj,null).toString());

}

}

}catch(Exception e){throw new Exception("获得对象转换科学计算法出错!");

}returnobj;

}/*** 金融记数法换成普通数字型转。

*
小数点保留两位

*@paramobj - 要转换的对象

*@paramobj - 要转换的属性集合

*@returnString - 返回转换后的数字字符串对象*/

public static Object beanGetFinal(Object obj,String jH[]) throwsException{

Class type=obj.getClass();boolean flag=false;

String name="";

Method getMethod=null;try{//*********获得BEAN 的BEAN信息

BeanInfo info =Introspector.getBeanInfo(type);//*********通过BEAN的信息获得性质特制集合

PropertyDescriptor[] props =info.getPropertyDescriptors();//*********循环传递数据

for (int i = 0; i < props.length; i++) {

flag=false;//*********获得第1个BEAN的每个属性名与GET方法

name =props[i].getName();

getMethod=props[i].getReadMethod();//**********如果获得的属性名是jH含有的属性名 把标志设置为真!

System.out.println(name);for(int s=0;s

}if(flag){//*********获得第BEAN的 SET方法

Method setMethod =props[i].getWriteMethod();if(getMethod.invoke(obj,null)==null)setMethod.invoke(obj,new Object[]{"0"});if(Double.valueOf(getMethod.invoke(obj,null).toString()).doubleValue()!=new Double("0").doubleValue())

setMethod.invoke(obj,new Object[]{new String(OlogyCount.finalToNormal(getMethod.invoke(obj,null).toString().trim()))});

}

}

}catch(Exception e){try{

System.out.println(e+e.getMessage()+name+getMethod.invoke(obj,null).toString());

}catch(IllegalArgumentException e1) {//TODO 自动生成 catch 块

e1.printStackTrace();

}catch(IllegalAccessException e1) {//TODO 自动生成 catch 块

e1.printStackTrace();

}catch(InvocationTargetException e1) {//TODO 自动生成 catch 块

e1.printStackTrace();

}throw new Exception("获得对象科学计算法转换数字出错!");

}returnobj;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值