java中价格的数字中间有逗号的处理

您所在的位置:网站首页 怎样把一些数字中的逗号去除 java中价格的数字中间有逗号的处理

java中价格的数字中间有逗号的处理

2024-07-14 09:14| 来源: 网络整理| 查看: 265

一,最近在做购物车总额计算功能总结了下,一般从服务器获取的产品价格中小数点左边超过3位数都有逗号出现,以此类推每隔三位一个逗号这个没的说,在计算的时候必须去掉要不然会报数字转换异常,下面是2种去掉逗号的方法:         

方法一: 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( ",", ""')   ;   我用得第二种方法,原因是简单易懂;第二种仔细看也不难,不过加个循环,再new 个StringBuffer有点杀鸡焉用宰牛刀 这样去掉逗号后就可以进行金额计算了,计算后的总金额一般都是float类型的,用下面第二点中的第5种模式再转成带逗号的String, 最终显示在页面上

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

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.00\u2030"; //在构造函数中设置数字格式 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种模式有点不同



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3