BC - 出力パラダイム?

BC - 出力パラダイム?

私は多くの数を持っています:

2923174917395723957

それは次のとおりです。

2,923*10^18

この出力を提供できるパラメータはbcにありますか?
たとえば、

$ echo '2923174917395723956 + 1' | bc
2,923*10^18
$ 

それとも、そのような...要点は簡単に見なければならないということです
。ありがとうございます!

答え1

printfコマンドを試してください:

$ printf "%e\n" 2923174917395723957
2.923175e+18

もちろん、あなたのロケールでは、代わりにを使用する必要があります。たとえば、次のように形式をより正確に制御できます。

$ printf "%.3e\n" 2923174917395723957
2.923e+18

一部のシェル(bashなど)にはprintfという組み込みコマンドがありますが、これはシステムに付属の他のprintfコマンドとは異なる場合がありますが、通常は上記のような単純なコマンドとは違いがありません。 Perlのprintfを使用することもできますが、これは非常に一貫しています。

$ perl -e 'printf "%.3e\n", 2923174917395723957'
2.923e+18

答え2

bcでは、数値はプロセッサではなく10進数(実際には100進数、バイトあたり1桁)で表されます。数値はエクスポートされ、bc 内部レジストリに保存されます。印刷機能には、指数とともに数字を印刷するオプションはありません。しかし、BC州では何でも可能です。数値出力形式を指定する関数を直接作成できます。関数をファイルに保存し、ファイルパスをBC_ENV_ARGS変数に追加すると、bcが呼び出されるたびに関数を使用できます。

確認するhttp://phodd.net/gnu-bc/code/output_formatting.bc printfe関数の場合...

関連情報