在javascript中将字符串转换为印度格式
Posted
技术标签:
【中文标题】在javascript中将字符串转换为印度格式【英文标题】:convert string in indian format in 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;
【问题讨论】:
可能重复:***.com/questions/16037165/… 【参考方案1】:你可能想试试jQuery Globalize:
https://github.com/jquery/globalize#number-formatting
“te-IN”文化正是这样做的。
【讨论】:
以上是关于在javascript中将字符串转换为印度格式的主要内容,如果未能解决你的问题,请参考以下文章
无法在JavaScript中将String BST日期格式转换为UTC
在 C# 中将 (Javascript)TypedArray 字符串转换为 byteArray 的最佳方法
在控制浮点数精度的同时在javascript中将数组转换为字符串