以货币格式显示JSON数据,舍入到最近的整数

时间:2015-05-18 18:57:05

标签: javascript arrays object

我想在货币格式的特定列中显示我的数字,数字四舍五入到最接近的整数(无小数)。

以下是我的Bootstrap表的代码: http://jsfiddle.net/bypbqboe/28/

以下是我的Fusion Table中的JSON数据示例:

[{
"0":"<a href =\"http://www.kia.com/us/en/vehicle/optima/2015/experience?cid=sem&ppc=y&story=hello\" target=\"_blank\">Kia Optima LX</a>",
"1":"95",
"2":"$182.95",
"3":22515,
"4":17629,
"5":595,
"6":0.55,
"7":12383.250000000002,
"8":0.00069,
"9":"36",
"10":"12,000",
"11":"Luxury",
"12":"Large",
"13":"",
"14":""
},
...

我希望"7":12383.250000000002(我的剩余($)列)显示为$ 12383。

我尝试在第15-17行使用.toFixed()

for (var p=0; p<global_data.length; p++){
    global_data[p].7 = global_data[p].7.toFixed(1);
}

但它不起作用。:/我是编程新手。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要使用括号表示法访问该值。你可能想要固定(0)。

for (var p=0; p<global_data.length; p++){
    global_data[p]["7"] = "$" + global_data[p]["7"].toFixed(0);
}

参考:MDN: Property Accessors

更新:对评论的回复

我能够通过几个修正使你的小提琴代码工作。首先,删除脚本块末尾的额外字符。它看起来像&#34; -l&#34;然后括号表示错误,即在括号之间插入了点。最后,返回的数据有时是NaN(非数字),导致错误。最快的解决方法是添加一个try / catch块(有更好的方法,但我会留给你)。进行这些更改,它也适合您。祝你好运!

这是更新的部分,带有正确的括号表示法和try / catch:

   for (var p=0; p<global_data.length; p++){
        try {
            global_data[p]["7"] = "$" + global_data[p]["7"].toFixed(0);
        } catch(e) { }
    };

这是你小提琴的错误代码。你能发现错误吗?

global_data[p].["7"] = "$" + global_data[p].["7"].toFixed(0);