javascript:将函数的输出更改为指定的小数位

javascript:将函数的输出更改为指定的小数位,javascript,function,object,number-formatting,Javascript,Function,Object,Number Formatting,我不太擅长javascript,但最近需要使用库来输出聚合表。正在使用 有一部分我需要向一个对象插入一个求和函数(本例中为rollups.sum(11)),以便它可以计算表中的聚合值,如下所示: aggregates = {Value: rollups.sum(11)} 我想将此值更改为返回2位小数,并尝试: rollups.sum(11).toFixed(2) 但是,它给出了错误:“rollups.sum(…).toFixed不是函数” 如果我尝试以下方法: parseFloat(roll

我不太擅长javascript,但最近需要使用库来输出聚合表。正在使用

有一部分我需要向一个对象插入一个求和函数(本例中为rollups.sum(11)),以便它可以计算表中的聚合值,如下所示:

aggregates = {Value: rollups.sum(11)}
我想将此值更改为返回2位小数,并尝试:

rollups.sum(11).toFixed(2)
但是,它给出了错误:“rollups.sum(…).toFixed不是函数”

如果我尝试以下方法:

parseFloat(rollups.sum(11)).toFixed(2)
它抛出错误:“无法分配(新字符串(“NaN”):非对象的属性”

所以它必须是一个函数对象

我可以知道是否有办法改变函数rollups.sum(11)以返回一个小数点后两位的函数对象吗

(side info:rollups.sum(11)来自一个模块,该模块给出:

sum: function(columnIndex) {
    return sum.bind(this, columnIndex);
}
)

很抱歉,由于数据机密性问题,我无法在此发布示例输出。 但是,下面是我下面的示例中的代码。我基本上需要更改汇总表。无论什么都可以给小数点。在这里,总和(11)中的“11”指的是“列索引”

window.onload=function(){
var Hypergrid=fin.Hypergrid;
var drillDown=Hypergrid.drillDown;
var TreeView=Hypergrid.TreeView;
var GroupView=Hypergrid.GroupView;
var AggView=Hypergrid.AggregationsView;
//在此演示的“仪表板”中显示为复选框的属性列表
变量toggleProps=[{
标签:“分组”,
CTRL:[
{name:'treeview',选中:false,setter:toggleTreeview},
{name:'aggregates',选中:false,setter:toggleAggregates},
{name:'grouping',checked:false,setter:toggleGrouping}
]
}
];
函数派生的PeopleSchema(列){
//创建按别名组织的分层架构
var factory=新的Hypergrid.ColumnSchemaFactory(列);
工厂组织(/^(一|二|三|四|五|六|七|八)/i,{键:'alias'});
var columnSchema=factory.lookup('last_name');
if(列模式){
columnSchema.defaultOp='IN';
}
//factory.lookup('birthState')。opMenu=['>','您可以尝试:

(rollups.sum(11)).toFixed(2)
括号中的数字似乎使浏览器绕过了标识符不能在数字文字之后立即启动的限制

编辑#2:

你可以尝试:

(rollups.sum(11)).toFixed(2)
括号中的数字似乎使浏览器绕过了标识符不能在数字文字之后立即启动的限制

编辑#2:


请提供求和函数的示例输出好吗?我已经用数字和字符串的返回输出在两种情况下进行了测试
parseFloat(rollups.sum(11))。toFixed(2)
工作正常。您能显示求和(11)的返回值吗是的,所以我可以看到您处理的是什么样的数据结构。很抱歉,我不能发布示例输出,因为数据是机密的。但是,这里有一个我非常遵循的示例。基本上,如果您单击“聚合”复选框,它将对值进行求和。我只想尝试将求和格式更改为输出2位小数。示例的脚本可以在这里找到。请提供求和函数的示例输出吗?我已经在两种情况下测试了数字和字符串的返回输出
parseFloat(rollups.sum(11))。toFixed(2)
工作正常。你能告诉我sum(11)的返回值是多少吗,这样我就可以知道你在处理什么样的数据结构。很抱歉,我不能发布一个样本输出,因为数据是保密的。但是,这里有一个我很认真地遵循的例子。基本上,如果你点击“聚合”复选框,它将对值求和。我只想尝试将求和格式更改为输出2位小数。示例的脚本可以在这里找到。谢谢Bod!我尝试了,但它返回了一个错误:TypeError:rollups.sum(…).toFixed不是一个函数。我认为任何修改都应该返回一个函数对象。覆盖单元格渲染怎么样,@NoobPoke?请看一下我编辑的答案。我将此代码放在聚合切换的定义之后。然后所有单元格都变黄,并显示文本“renderer is undefined”@NoobPoke,我忘记了函数的其余部分,第二个修改可能就是这个,我希望:)谢谢Bod!我试过了,但它返回了一个错误:TypeError:rollups.sum(…).toFixed不是一个函数。我认为任何修改都应该返回一个函数对象。覆盖单元格渲染怎么样,@NoobPoke?请看一下我编辑的答案。我将此代码放在聚合切换的定义之后。然后所有单元格都变黄,并显示文本“renderer is undefined”@NoobPoke,我忘记了函数的其余部分,我希望第二次修改可能是:)
//all formatting and rendering per cell can be overridden in here
dataModel.getCell = function(config, rendererName) {
    if(aggViewOn)
    {
        if(config.columnName == "total_pets")
        {
            if(typeof(config.value) == 'number')
            {
                config.value = config.value.toFixed(2);
            }
            else if(config.value && config.value.length == 3 && typeof(config.value[1]) == 'number')
            {
                config.value = config.value[1].toFixed(2);
            }
        }
    } 
    return grid.cellRenderers.get(rendererName);
};