我正在设置我的库存小部件上的小数位数,因此0.199999只显示为0.19,1而显示为1.00,8.6543只显示为8.65。我的脚本有什么问题?
这是我目前所拥有的......
var rndchange = obj.ChangeRealtime;
$tr.append($('<td class="'+changeClass+'">').text(rndchange.toFixed(2)|| "--"));
这是整个剧本......
$(function () {
$.getJSON('http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20yahoo.finance.quotes%20WHERE%20symbol%20in(%22GCF14.CMX%22%2C%22SIF14.CMX%22%2C%22PAH14.NYM%22%2C%22PLF14.NYM%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=').done(function (data) {
console.log("data: ", data);
console.log(data.query.results.quote);
$.each(data.query.results.quote, function (key, obj) {
var changeClass = '';
var changeInPercentClass = '';
var rndchange = obj.ChangeRealtime;
var $tr = $('<tr/>', {
'class': 'my-new-list'
}).appendTo('#blk-1 table');
$tr.append($('<td id="name" class="cells"/>').text(obj.Name.split(' ')[0] || "--"));
$tr.append($('<td class="cells"/>').text(obj.AskRealtime || "--"));
//$tr.append($('<td/>').text(obj.BidRealtime || "--"));
(obj.Change.substr(0,1) === '+') ? changeClass = 'green' : changeClass = 'red';
(obj.Change.substr(0,1) === '+') ? changeInPercentClass = 'green' : changeInPercentClass = 'red';
$tr.append($('<td class="'+changeClass+'">').text(rndchange.toFixed(2)|| "--"));
var re = /([+|-]\d\.\d\d\%)/gi;
var rt = re.exec(obj.ChangePercentRealtime);
$tr.append($('<td class="'+changeInPercentClass+'">').text( rt[0] || "--"));
});
});
});
答案 0 :(得分:2)
您可以使用JavaScript内置的toFixed()
方法将值更改为固定的小数位数:
var n = 1;
n.toFixed(2); // 1.00
在这里,我们将值2
传递给我们的toFixed()
方法,告诉它我们希望结果为2位小数。
然而,问题在于它将您的数字四舍五入到最接近的值。 1.999
将四舍五入为2(1.999
向上舍入到2.00
,而不是向下舍入为1.990
,因为这只是四舍五入的工作方式):
var n = 1.99999;
n.toFixed(2); // 2.00
你的另一个例子在这里可以正常工作:
var n = 8.6543;
n.toFixed(2); // 8.65;
如果您确实希望1.99999
成为1.99
,请参阅此答案:Display two decimal places, no rounding。
答案 1 :(得分:0)
请在此处查看:http://jsfiddle.net/thetuneupguy/JaCaH/9/
我能用这个来实现我的需要......
var change = obj.Change;
var num = parseFloat(change);
var str = num.toFixed(10);
str = str.substring(0, str.length-8);
和...
$tr.append($('<td class="'+changeClass+'">').text(str || "--"));
现在,我需要弄清楚如何在正面附加+符号。