添加逗号,小数到数字输出javascript
Posted
技术标签:
【中文标题】添加逗号,小数到数字输出javascript【英文标题】:Adding commas, decimal to number output javascript 【发布时间】:2011-08-17 17:58:29 【问题描述】:我正在使用以下代码从起始数字开始计数。我需要的是在适当的位置(千位)插入逗号,并在最后两位数字前面放一个小数点。
function createCounter(elementId,start,end,totalTime,callback)
var jTarget=jQuery("#"+elementId);
var interval=totalTime/(end-start);
var intervalId;
var current=start;
var f=function()
jTarget.text(current);
if(current==end)
clearInterval(intervalId);
if(callback)
callback();
++current;
intervalId=setInterval(f,interval);
f();
jQuery(document).ready(function()
createCounter("counter",12714086+'',9999999999,10000000000000,function()
alert("finished")
)
)
在这里执行:http://jsfiddle.net/blackessej/TT8BH/3/
【问题讨论】:
This answer to a different SO question 可能会有所帮助。 您是要我们为您编写代码吗?为什么不先尝试一下,然后问我们是否卡住了 【参考方案1】:var s = 121221;
使用函数insertDecimalPoints(s.toFixed(2));
你会得到1,212.21
function insertDecimalPoints(s)
var l = s.length;
var res = ""+s[0];
console.log(res);
for (var i=1;i<l-1;i++)
if ((l-i)%3==0)
res+= ",";
res+=s[i];
res+=s[l-1];
res = res.replace(',.','.');
return res;
【讨论】:
【参考方案2】:查看this page,了解有关 slice()、split() 和 substring() 以及其他字符串对象函数的说明。
var num = 3874923.12 + ''; //converts to a string
numArray = num.split('.'); //numArray[0] = 3874923 | numArray[1] = 12;
commaNumber = '';
i = numArray[0].length;
do
//we don't want to start slicing from a negative number. The following line sets sliceStart to 0 if i < 0. Otherwise, sliceStart = i
sliceStart = (i-3 >= 0) ? i-3 : 0;
//we're slicing from the right side of numArray[0] because i = the length of the numArray[0] string.
var setOf3 = numArray[0].slice(sliceStart, i);
commaNumber = setOf3 + ',' + commaNumber; //prepend the new setOf3 in front, along with that comma you want
i -= 3; //decrement i by 3 so that the next iteration of the loop slices the next set of 3 numbers
while(i >= 0)
//result at this point: 3,874,923,
//remove the trailing comma
commaNumber = commaNumber.substring(0,commaNumber.length-1);
//add the decimal to the end
commaNumber += '.' + numArray[1];
//voila!
【讨论】:
谢谢@maxedison。问题是,我还不是很擅长 javascript……我相信我已经采取了正确的步骤将我的数字转换为字符串 - jsfiddle.net/blackessej/TT8BH/3,但我不确定从这里去哪里。 【参考方案3】:此功能可用于如果不工作的 locale somite 数=1000.234; number=insertDecimalPoints(number.toFixed(3));
function insertDecimalPoints(s)
console.log(s);
var temaparray = s.split(".");
s = temaparray[0];
var l = s.length;
var res = ""//+s[0];
console.log(res);
for (var i=0;i<l-1;i++)
if ((l-i)%3==0 && l>3)
res+= ",";
res+=s[i];
res+=s[l-1];
res =res +"."+temaparray[1];
return res;
【讨论】:
【参考方案4】:function convertDollar(number)
var num =parseFloat(number);
var n = num.toFixed(2);
var q =Math.floor(num);
var z=parseFloat((num).toFixed(2)).toLocaleString();
var p=(parseFloat(n)-parseFloat(q)).toFixed(2).toString().replace("0.", ".");
return z+p;
【讨论】:
以上是关于添加逗号,小数到数字输出javascript的主要内容,如果未能解决你的问题,请参考以下文章