Google Sheets Scripts 数字小数位格式

Den*_*Lam 4 javascript google-sheets google-apps-script

使用 Google Sheets Script Editor,我试图创建一个自定义函数,它可以帮助我格式化具有一定数量小数位的数字字符串。我需要字符串是数字类型,以便可以绘制数据图表。

我需要这个函数的原因是因为我有一个单元格内下拉菜单,它触发显示单元格内具有不同小数位的不同数字集。因此,我不能依赖 Sheets 中的静态数字格式设置。

虽然这会返回我想要的小数位数...

function format(amt) { return amt.toFixed(2); }
Run Code Online (Sandbox Code Playgroud)

toFixed() 创建一个文本字符串,因此该值不能用于图表(图表会显示“无数据”)。

我尝试了以下替代方案......

return parseFloat(amt); // var = number; can chart but cannot control decimal places
return parseFloat(amt).toFixed(2); //var = string; cannot chart
return parseInt(amt).toFixed(2); //var = string; cannot chart
Run Code Online (Sandbox Code Playgroud)

任何人都可以让我知道是否有办法创建一个自定义函数,让我控制我想要的小数位数,同时将其保持为数字字符串?

Rob*_*zak 6

function format(x, n){
    x = parseFloat(x);
    n = n || 2;
    return parseFloat(x.toFixed(n))
}
Run Code Online (Sandbox Code Playgroud)

基本上,您需要在调用 toFixed() 方法之后解析该值,但您是在调用 toFixed() 方法之前解析它。

用上面的函数你可以说format(amt)得到2个小数位,或者format(2, n)得到n小数位