【问题标题】:convert string in indian format in javascript在javascript中将字符串转换为印度格式
【发布时间】:2013-04-29 11:37:42
【问题描述】:

我只需要在 javascript/jquery 中转换印度格式的字符串(这是从 UI 输入的数字)

Input: 1234567
Output: 12,34,567

Input: 91234567.00
Output: 9,12,34,567.00

我用 java 写过同样的东西,但是用 javascript 写很困难

Java 代码如下,供您参考

public static String indianFormat(BigDecimal n) {
    DecimalFormat formatter = new DecimalFormat("##,###");
    boolean negFlag = n.compareTo(BigDecimal.ZERO) < 0 ? true : false;
    n = n.abs();
    String dec = "";
    if (n.toString().indexOf(".") > -1) {
        dec = "." + n.setScale(2, RoundingMode.HALF_UP).toString().split("\\.")[1];
    } else {
        dec = ".00";
    }
    String returnValue = "";

    if (n.longValue() > 9999) {
        formatter.applyPattern("#,##");

        returnValue = formatter.format((int) (n.longValue() / 1000)) + ",";
        formatter.applyPattern("#,###");
        String rem = formatter.format(n.longValue() - (long) (n.longValue() / 1000) * 1000);
        if (Integer.parseInt(rem) == 0) {
            returnValue = returnValue + "000";
        } else if (Integer.parseInt(rem) < 10) {
            returnValue = returnValue + "00" + rem;
        } else if (Integer.parseInt(rem) < 100) {
            returnValue = returnValue + "0" + rem;
        } else {
            returnValue = returnValue +  rem;
        }

    } else if (n.intValue() >= 1000 && n.intValue() <= 9999) {
        formatter.applyPattern("#,###");

        returnValue = formatter.format(n.intValue());

    } else {

        returnValue += n.intValue();

    }

    if (negFlag == true)
        return "-" + returnValue + dec;
    else
        return returnValue + dec;

}

【问题讨论】:

标签: java javascript jquery number-formatting


【解决方案1】:

你可能想试试jQuery Globalize:

https://github.com/jquery/globalize#number-formatting

“te-IN”文化正是这样做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    相关资源
    最近更新 更多