java 取消货币中的逗号_java或js中价格的数字中间有逗号的处理,以及js保留自定义或两位小数点...

一团网资讯

一团资讯 > javascript > java或js中价格的数字中间有逗号的处理,以及js保留自定义或两位小数点...

java或js中价格的数字中间有逗号的处理,以及js保留自定义或两位小数点

2018-06-11 13:32:48     发布者:来源网络

java

方法一:

java.util.StringTokenizer   st   =   new   StringTokenizer( "123,456,789 ", ", ");

StringBuffer   sb   =   new   StringBuffer();

while(st.hasMoreTokens())   {

sb.append(st.nextToken());

}

方法二:

String   str=new   String( "123,456,789 ");

str   =   str.replace( ",", ""')   ;

我用的是

String   str=new   String( "123,456,789 ");

str   =   str.replaceAll( ",", ""')   ;

这样也会可能在小数点后面有多个0,这样就要保留小数点位数了,我是保留的两位,下面的方法可以实现对double和float小数点的处理

public static final DecimalFormat DF[] = {

null, null, new DecimalFormat("#,##0.00"), null, new DecimalFormat("#,##0.0000")

};

f(doublevalue, 4);

public static String f(double value, int s)

{

return !Double.isNaN(value) && value != 0.0D ? DF[s].format((new BigDecimal(value)).setScale(s, 4)) : "";

}

f(floatvalue);

public static String f(float value)

{

return !Float.isNaN(value) && value != 0.0F ? DF[2].format((new BigDecimal(value)).setScale(2, 4)) : "";

}

这样去掉逗号后就可以进行金额计算了,计算后的总金额一般都是float类型的,用下面第二点中的第5种模式再转成带逗号的String, 最终显示在页面上

js

str=str.replace(/,/g,"");//全部替换replaceAll效果

下面就是保留自定义小数点位数(floor(str,2))和两位小数点位数(changeTwoDecimal(str))

function floor(digit, length) {

length = length ? parseInt(length) : 0;

if (length <= 0) return Math.floor(digit);

digit = Math.floor(digit * Math.pow(10, length)) / Math.pow(10, length);

return digit;

}

function changeTwoDecimal(x)

{

var f_x = parseFloat(x);

if (isNaN(f_x))

{

alert('function:changeTwoDecimal->parameter error');

return false;

}

var f_x = Math.round(x*100)/100;

return f_x;

}

再用下面的方法实现转换成带逗号的var

function formatNumber(num){

if(!/^(+|-)?(d+)(.d+)?$/.test(num)){return   num;}

var   a   =   RegExp.$1,   b   =   RegExp.$2,   c   =   RegExp.$3;

var   re   =   new   RegExp().compile("(\d)(\d{3})(,|$)");

while(re.test(b))   b   =   b.replace(re,"$1,$2$3");

return   a +""+ b +""+ c;

}

下面是在网上搜索的收藏下来,以备以后不时之需

java.text.DecimalFormat类就是专门对数字进行格式化的。通过对该类的应用,可以为要输出的数字加上单位,或者控制数字的精度,用法:可以在DecimalFormat实例化时传递格式,也可通过对象调用applyPattern方法来实现设置格式。

代码演示如下:

package formatnumber;

import java.text.DecimalFormat;

public class FormatNumber {

public static void main(String[] args) {

DecimalFormat df = new DecimalFormat();

double data = 1234.56789;

System.out.println("格式化之前的数字: " + data);

1,String style = "0.0";//定义要显示的数字的格式

df.applyPattern(style);// 将格式应用于格式化器

System.out.println("采用style: " + style + "格式化之后: " + df.format(data));,

2,style = "00000.000 kg";//在格式后添加诸如单位等字符

df.applyPattern(style);

System.out.println("采用style: " + style + "格式化之后: " + df.format(data));

3,// 模式中的"#"表示如果该位存在字符,则显示字符,如果不存在,则不显示。

style = "##000.000 kg";

df.applyPattern(style);

System.out.println("采用style: " + style + "格式化之后: " + df.format(data));

4,// 模式中的"-"表示输出为负数,要放在最前面

style = "-000.000";

df.applyPattern(style);

System.out.println("采用style: " + style + "格式化之后: " + df.format(data));,

5,// 模式中的","在数字中添加逗号,方便读数字

style = "-0,000.0#";

df.applyPattern(style);

System.out.println("采用style: " + style + "格式化之后: " + df.format(data));

6,// 模式中的"E"表示输出为指数,"E"之前的字符串是底数的格式,

// "E"之后的是字符串是指数的格式

style = "0.00E000";

df.applyPattern(style);

System.out.println("采用style: " + style + "格式化之后: " + df.format(data));

7,// 模式中的"%"表示乘以100并显示为百分数,要放在最后。

style = "0.00%";

df.applyPattern(style);

System.out.println("采用style: " + style + "格式化之后: " + df.format(data));

8,// 模式中的"u2030"表示乘以1000并显示为千分数,要放在最后。

style = "0.00u2030";

//在构造函数中设置数字格式

DecimalFormat df1 = new DecimalFormat(style);

//df.applyPattern(style);

System.out.println("采用style: " + style + "格式化之后: " + df1.format(data));

}

}

程序运行结果为:

格式化之前的数字: 1234.56789

采用style: 0.0格式化之后: 1234.6

采用style: 00000.000 kg格式化之后: 01234.568 kg

采用style: ##000.000 kg格式化之后: 1234.568 kg

采用style: -000.000格式化之后: -1234.568

采用style: -0,000.0#格式化之后: -1,234.57//这个我建议用style:-0,000.00,因为最后一位用#存在时才显示,这样不统一。

采用style: 0.00E000格式化之后: 1.23E003

采用style: 0.00%格式化之后: 123456.79%

采用style: 0.00‰格式化之后: 1234567.89‰

注意:第8种模式中和之前7种模式有点不同

http://music.soso.com/player?source=1

下面是在网上搜索的收藏下来,以备以后不时之需

[ 责任编辑:来源网络 ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值