gpt4 book ai didi

google-apps-script - 按照德国书写格式格式化数字的函数

转载 作者:行者123 更新时间:2023-12-02 22:19:38 24 4
gpt4 key购买 nike

我正在为基于 Google 文档的发票模板编写第一个脚本。效果很好。我需要在德国使用它,因此我需要能够按照德国显示的方式设置价格格式。

我编写了一个简短的函数来执行此操作,但我对是否有更好或更明显的方法来实现此目的感兴趣。

// this formats numbers as used in Germany
function numberToGerman(number){
number = Utilities.formatString("%d.%d,%02d", number/1000, number%1000, number%1*100);
return number;
}

目前在高于 999.999,99 或低于 1.000,00 时存在问题,但我希望有更好的解决方案。

最佳答案

这里对 answer by Elias Zamaria 稍加修改,替换分隔符并确保恰好两位小数:

function numberToGerman(number){
var parts = number.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ".");
parts[1] = ((parts[1] || "") + "00").slice(0,2);
return parts.join(",");
}

这些部分是整数部分和小数部分。三位数组由正则表达式处理,并相应地放置点。小数部分被扩展/截断到两个位置。

备注

  1. 遗憾的是,Google Apps 脚本尚不支持 number.toLocaleString("de-DE")。可以使用 number.toLocaleString() 但性能取决于是否设置了正确的区域设置。另外,options concerning decimal places也不支持,所以这没有多大帮助。

  2. 如果要在电子表格中使用此格式,您可以从菜单手动或通过脚本对单元格应用适当的格式:例如 cell.setNumberFormat("#,###. 00”)。这看起来像美国风格的格式,但是一旦电子表格的区域设置更改为德国,它就会相应地发生变化,例如1.234.567,89。

关于google-apps-script - 按照德国书写格式格式化数字的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40829636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com