如何在printf“%s \ n”10000中显示点?

时间:2013-06-01 06:40:47

标签: bash printf

我有命令printf "%s\n"。我希望该命令可以用点(.000)分隔为零。

e.g:

printf "%s\n" 300.77

300.77

我想要

printf "%s\n" 1000000

1.000.000

你能帮我解决我的问题吗?

1 个答案:

答案 0 :(得分:5)

您必须使用%f格式指定将该值视为浮点数。

$ printf "%7.4f\n" 12.2
12.2000
$ printf "%7.4f\n" 12.23576 12.23574
12.2358
12.2357
$

如果目标是将本地千位分隔符输入到输出中,那么您需要支持'格式的printf()修饰符:

$ printf "%'d\n" 1223576 1223574
1,223,576
1,223,574
$

行为依赖于语言环境:

$ echo $LANG
en_US.UTF-8
$ (export LANG=de_DE.UTF-8; printf "%'d\n" 1223576 1223574)
1223576
1223574
$ (export LANG=dk_DK.UTF-8; printf "%'d\n" 1223576 1223574)
1,223,576
1,223,574
$ (export LANG=it_IT.UTF-8; printf "%'d\n" 1223576 1223574)
1223576
1223574
$ (export LANG=gr_GR.UTF-8; printf "%'d\n" 1223576 1223574)
1,223,576
1,223,574
$ 

在Mac OS X 10.8.3(bash版本:GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12))上测试过。