パイピングは数値の精度にどのような影響を与えますか?

パイピングは数値の精度にどのような影響を与えますか?

桁数の多い大きな数値の同じ入力に複数のパイプ コマンドを使用すると、数値の精度にどのような影響がありますか。数値は切り捨てられますか。入力が使用され、その後再利用されるため、複数回と記載したことに注意してください。入力に使用される関数が数値の精度に影響を与えないと仮定すると、「パイプ |」はそれに影響を与えますか。

また、桁数の多い大きな数値の入力に対して関数がアクションを実行するという私の想定は間違っています。関数に awk が含まれている場合、私の想定は間違っていますが、「sed」はどうでしょうか。

答え1

ここには 5 つのパイプがあり、ご覧のとおり、出力される文字は入力される文字とまったく同じです。

$ echo '1.23456789012345678901234567890' | cat | cat | cat | cat | cat
1.23456789012345678901234567890

パイプは文字を伝送する変更なしパイプ内では、一連の文字が数字を表すかどうかは関係ありません。パイプにとって、すべてが単なる一連の文字です。

答え2

パイプ

cmd1 | cmd2

コマンド cmd1 の標準出力を取得し、それを変更せずにコマンド cmd2 の標準入力に送ります。バッファリングが適用されますが (したがって、大規模な I/O を扱っていてリアルタイムの結果が必要な場合は留意する必要があります)、数学的な演算は行われず、数値の精度にはまったく影響しません。

関連情報