我有一个很大的数字:
2923174917395723957
Run Code Online (Sandbox Code Playgroud)
那将是:
2,923*10^18
Run Code Online (Sandbox Code Playgroud)
bc 中是否有任何参数可以提供此输出?
例如:
$ echo '2923174917395723956 + 1' | bc
2,923*10^18
$
Run Code Online (Sandbox Code Playgroud)
或类似的东西...关键是它必须有一个简短的外观
谢谢!
试试 printf 命令:
$ printf "%e\n" 2923174917395723957
2.923175e+18
Run Code Online (Sandbox Code Playgroud)
在您的语言环境中,它当然应该使用 , 而不是 .。您还可以更精确地控制格式,例如:
$ printf "%.3e\n" 2923174917395723957
2.923e+18
Run Code Online (Sandbox Code Playgroud)
像 bash 这样的一些 shell 有一个名为 printf 的内置命令,它可能与系统附带的任何 printf 命令不同,但是,一般来说,你不应该注意到与上面的简单命令有任何区别。您还可以使用 Perl 中的 printf ,这将非常一致。
$ perl -e 'printf "%.3e\n", 2923174917395723957'
2.923e+18
Run Code Online (Sandbox Code Playgroud)