私は多くの数を持っています:
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関数の場合...