infowindow自定义谷歌融合表中的数字格式错误

时间:2012-02-17 14:20:05

标签: javascript formatting google-fusion-tables

提前致谢。所以我有一个使用addlistener事件打开的自定义选项卡式infowindow。选项卡正常工作(图像,文本,链接)但我显示的数字值很奇怪,例如我的成本(在融合表中)是10.00但在信息窗口中它显示为10.00000000。如何将此舍入为2位有效数字?

我试过了:

  1. 在google fusion tables中设置格式。
  2. 使用javascript,例如Math.round(((e.row ['Cost']。value)* 100)/ 100)。有趣的是,这只会删除所有小数位并产生10。
  3. 这是我的代码的一部分

    google.maps.event.addListener(layer, 'click', function(e) {
    if(infowindow) infowindow.close();
    else infowindow = new google.maps.InfoWindow();
        infowindow.setContent(
        '<div class="tabs">' +
    '<ul>' +
    '<li><a href="#tab-1"><span>tab 1</span></a></li>' +
    '<li><a href="#tab-2"><span>tab 2</span></a></li>' +
    '</ul>' +
    '<div id="tab-1">' +
    
     '<b><div class="infowindow_row">Cost:</b> ' + e.row['Cost'].value + '</div>' +     
     .........................
    

2 个答案:

答案 0 :(得分:0)

非常感谢您查看问题并向更大的编码社区提供帮助,但这次我回答了我自己的问题(基于其他问题)。这个方法将数字作为一个字符串,我只需要parsefloat,将数字四舍五入,并将数字固定为2个位置,以便数字以0结尾。

var apDA =  (Math.round(parseFloat(e.row['Cost'].value)*100)/100).toFixed(2) ;

有趣的是,在谷歌融合表中设置数字类型会影响数字在标准信息窗口中的显示方式,但不会像我上面那样解析出来。

答案 1 :(得分:0)

四舍五入乘以100,这一切都是多余的。 toFixed已进行四舍五入。来自w3schools

  

将数字转换为字符串,只保留两位小数:

     
    

var num = 5.56789;

         

var n = num.toFixed(2);

  
     

n的结果将是:

     
    

5.57