我必须用 gawk 处理一些巨大的文件。我的主要问题是我必须使用千位分隔符打印一些浮点数。例如:10000
应该在输出中显示为10.000
和。10000,01
10.000,01
我(和谷歌)想出了这个函数,但是对于浮点数失败了:
function commas(n) {
gsub(/,/,"",n)
point = index(n,".") - 1
if (point < 0) point = length(n)
while (point > 3) {
point -= 3
n = substr(n,1,point)"."substr(n,point + 1)
}
sub(/-\./,"-",n)
return d n
}
但它因浮动而失败。
现在我正在考虑将输入拆分为一个整数和一个 < 1 部分,然后在格式化整数之后再次粘合它们,但是没有更好的方法吗?
免责声明:
- 我不是程序员
- 我通过一些 SHELL 环境知道这一点。可以设置千位分隔符的变量,但它必须在具有不同语言和/或语言环境设置的不同环境中工作。
- 英语是我的第二语言,如果我用错了,请见谅