BC - 输出范式?

Lan*_*nes 3 bash bc

我有一个很大的数字:

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)

或类似的东西...关键是它必须有一个简短的外观
谢谢!

pen*_*359 6

试试 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)