シーンがあります。
8から9の範囲のUNIX合計で誤った合計が提供されるため、問題があります。どうすれば解決できますか?
私が使ったコマンド
awk -F '"?\\|"?' '{T+=$(2)} END {printf "%.2f\n",T}' demofile.txt
前の質問へのリンクは次のとおりです。 これら2つのsumコマンドの間に違いがあるのはなぜですか?
正確な金額を得るために処理するより良い方法はありますか?
awk、bc、またはdcを使用してください。
デモデータ
1|"12.8"|demo1
2|"13.5678341234567"|demo1
3|"14.578"|demo1
4|"15.58"|demo1
5|"16.56784"|demo1
6|"17.578"|demo1
7|"18.678"|demo1
8|"19.568890123"|demo1
9|"20.588792"|demo1
ベストアンサー1
ファイルサイズ(つまり、追加したい行数)を話していません。サイトが「危険」と「不正警告」と表示される前のダウンロードサイズは18.3MBでした。平均行の長さが18の場合、これは100万の浮動小数点が追加され、値の範囲がわかりません。質問に表示される総数は13.2ビットなので、1行あたりの平均は約7ビットで、ボラティリティは不明です。
13桁の整数に近い累計に27.865326635297などの値を追加し続けると、.00532 ...が15桁または16桁の結果の範囲を超えているため、27.87(丸め)部分のみが合計に含まれます。時にはこれらのエラーが互いに相殺されたり、時にはそうでない場合もあります。モンテカルロ算術。
awk --versionの出力を確認してください。 MPFRとMPが言及されている場合、awkは拡張精密数学にコンパイルされます。 awkコマンドに-M 113を追加するだけです。これは、4倍精度の実数算術(33ビット精度)を実行できる歌手の長さです。
www.gnu.org/software/gawk/manual/gawk.html#ランダム-精密-算術