`

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

阅读更多
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.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种模式有点不同
http://music.soso.com/player?source=1





下面是在网上搜索的收藏下来,以备以后不时之需
分享到:
评论

相关推荐

    js下将金额数字每三位一逗号分隔

    在JavaScript中实现金额数字每三位一逗号分隔的功能是一个常见的编程需求,尤其在财务相关的Web应用开发中。这种功能通常被称为金额格式化,目的是将数字按照人眼习惯的格式来显示,即千分位使用逗号分隔。本文将...

    JS格式化数字金额用逗号隔开保留两位小数

    在JavaScript中,格式化数字金额以用逗号隔开保留两位小数是一个常见需求,尤其是在涉及到财务数据的展示时。这样的格式化不仅可以让金额显示更加清晰,也有助于用户阅读和理解。 首先,要实现数字金额的格式化,...

    VB.NET 输入框只输入数字、小数点、逗号、退格

    在VB.NET编程中,我们经常需要对用户在输入框(TextBox)中的输入进行限制,确保它们只能输入特定类型的字符,例如数字、小数点、逗号以及退格键。这样的需求在处理财务、数据录入等场景时尤为常见,因为我们需要...

    java(小数点,百分号处理)

    本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat`类来处理小数点、百分比等格式的数值。 #### 一、`java.text.DecimalFormat`类 `DecimalFormat`是`NumberFormat`的一个子类,...

    中文数字转成阿拉伯数字 java 实现

    在Java编程语言中,将中文数字转换为阿拉伯数字是一个常见的需求,特别是在处理中文文本数据时。这个场景下,我们有一个名为“中文数字转成阿拉伯数字 java 实现”的压缩包,包含了一个实现此功能的Java包和一个单元...

    finereport格式化金额函数js中进行数字超大金额千位符格式化处理.docx

    在JS中,我们可以使用toLocaleString()方法来实现数字的千分位格式化处理,该方法可以将数字转换为字符串,然后添加逗号分隔符。例如: ```javascript var num = 1450068; console.log(num.toLocaleString()); // 1,...

    js 金额数字逗号显示

    采用正则表达式 代码简洁,测试过 js 金额数字的逗号显示

    js 自定义trim去除字符串左右杂质

    这些方法可以广泛应用于 JavaScript 开发中,对于字符串的处理和操作非常有帮助。 知识点: * JavaScript 中不存在 trim() 方法来去除字符串左右的空格,需要自定义 trim() 方法。 * 使用 String.prototype 来扩展...

    js控制文本框只能输入正整数和逗号

    ### JavaScript 控制文本框只能输入正整数和逗号 在Web开发中,为了提高用户体验并确保数据的有效性,我们经常需要对用户输入的数据进行验证。例如,在某些场景下,可能需要用户仅能输入正整数和逗号,以便于后续...

    js以逗号分隔方式添加删除字符串

    在JavaScript(JS)中,处理字符串是常见的编程任务之一,特别是在构建动态网页和应用程序时。本文将深入探讨如何以逗号或其他自定义分隔符来添加或删除字符串,并且会强调不支持正则表达式中的特殊字符。我们将通过...

    js实现数字每三位加逗号的方法

    在编程世界中,尤其是在Web开发领域,JavaScript是处理数字和字符串常用的一种编程语言。特别是对于需要在用户界面展示易于阅读的数字,如在金融、统计等需要大量数字处理的场景下,将数字格式化为易于阅读的格式是...

    js实现对数字自定义格式输出.pdf

    js 实现对数字自定义格式输出 在本资源中,我们将讨论如何使用 JavaScript 实现对数字的自定义格式输出,例如将数字 100000 转换为 100,000 的形式。这种格式输出在实际应用中非常常见,例如在金融、商业、科学等...

    excel自定义格式

    - 将带有自定义格式的工作表保存为模板,以便重复使用。 ##### 8. VBA中的格式化 - 使用`Format`函数或`WorksheetFunction.TEXT`函数来进行更复杂的格式化操作。 #### 五、总结 通过自定义格式功能,用户可以根据...

    datatable数字列每四位加一个逗号

    在编程领域,尤其是在数据展示和处理的过程中,"datatable数字列每四位加一个逗号"是一个常见的需求,主要是为了提升数字的可读性。这个需求通常涉及到数字格式化的概念,特别是对于大数字,通过每三位添加一个逗号...

    JavaScript数字格式化函数

    在JavaScript中,数字格式化是将数值转换为特定格式的过程,比如添加逗号分隔符、保留小数位数、货币格式等。这通常涉及到字符串处理和数学运算。本篇文章将深入探讨JavaScript中的数字格式化函数及其应用。 一、...

    Numeral.js一个用于格式化和操作数字的JavaScript库

    4. **国际化支持**:Numeral.js支持多种语言,可以轻松适应不同地区的数字表示习惯,如逗号或句点作为小数点,以及千位分隔符的不同用法。 5. **操作数字**:除了格式化,Numeral.js还提供了加减乘除等基本数学运算...

    Java数字、货币值和百分数等的格式化处理

    Java中的数字、货币值和百分数格式化是编程中常见的需求,特别是在处理用户界面和国际化的应用程序时。Java提供了一套强大的工具来实现这些格式化,主要通过`java.text.Format`类及其子类来完成。在这个场景中,我们...

    Vue自定义过滤器格式化数字三位加一逗号实现代码

    总结来说,本文详细地介绍了如何在Vue.js框架中创建一个自定义过滤器,用于对数字进行“千分位”格式化并保留两位小数。这是前端开发中一个非常实用的技能,能够极大地提升用户界面的友好性和专业性。通过阅读本文和...

    java数字转金额(任意金额、支持负数、前缀0)

    在Java编程中,将数字转换为金额格式是一项常见的任务,特别是在财务系统或者电子商务应用中。这个过程涉及到将数字转换成符合人类阅读习惯的货币格式,包括添加逗号分隔符,处理负数,以及在必要时添加前导零。本文...

    Java 自定义方法

    在Java编程语言中,自定义方法是程序员根据需求创建的函数,它们允许我们封装特定的逻辑,以便在程序的不同部分重复使用。自定义方法可以接受参数、返回值或两者都有,也可以不接受任何输入,不返回任何结果。下面将...

Global site tag (gtag.js) - Google Analytics