問題タブ [floating-point-precision]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1581 参照

php - マイクロタイムからのラウンドフロート

PHPバージョン5.3.6

ファイルround.txtには、次の行が含まれています。

131.3048491477966 = 131.3

8.340715885162354 = 8.34

8.198318004608154 = 8.199999999999999

そんなことがあるものか?

0 投票する
3 に答える
532 参照

c++ - C++ 浮動小数点の問題

私は C++ とプログラミング全般に不慣れです。手を汚すためだけに小さなプログラムを試しています。以下は、円錐の体積を計算するために作成したプログラムです。

問題: 何をしても、出力は常に整数です。小数点以下2桁の精度にしたい。より高い精度を得るために変数を double および long double に変更しようとしましたが、何も機能しません。

どうすればこれを修正できますか? そして、なぜこれが起こっているのですか?(できれば詳しく) UNi の若手講師に聞いたことがありますが、これまで誰も適切な答えをくれませんでした。

Fedoraでg ++を使用しています

編集:私は整数を与える 50 60/70 50 /120 40 のような入力でこれを早く試しました。3 4 のような小さい入力では小数になります。

編集: setprecision() が機能します。これを送ってくれてみんなありがとう

0 投票する
2 に答える
1156 参照

ruby-on-rails - 奇妙な Heroku float ビット精度エラー (Ruby on Rails)

元々、私のモデルの座標フィールドは整数を使用していましたが、Heroku にデプロイしようとしたとき、(座標に小数点があったため) 代わりに浮動小数点数にする必要があることを (クラッシュによって) 思い出しました。そこで、ローカル マシンで change_column 移行を生成し、change_column をフロートに変更しました。そしてすべてがうまくいきました。

heroku pg:reset最初に a を使用して、次に を使用して、heroku に再度デプロイしようとしましたheroku db:setup。db:setup 中に、次のエラーが表示されます。

PGError: ERROR: precision for type float must be less than 54 bits : CREATE TABLE "landmarks" ("id" serial primary key, "name" character varying(255), "xcoord" float(255), "ycoord" float(255), "created_at" timestamp, "updated_at" timestamp)

そこで、別の change_column 移行を生成しました。今回は :precision オプションも使用しました ( :precision => 5054 未満の に設定)。展開プロセス全体をもう一度やり直しましたが、同じエラーが発生しました。

私は何か間違ったことをしていますか?float を変更せずに使用する前に、別のアプリを Heroku にデプロイしました...

ローカル マシンで SQLite を使用していますが、Heroku は Postgres を使用していると思いますか?

前もって感謝します!

[編集: 座標の値を変更した後に表示される出力 SQL のエラーは:precision、まだ 'float(255)' と表示されていることにも言及する必要があります...理由はわかりません]

0 投票する
4 に答える
7529 参照

java - Java が float v double を格納する方法

10 進数は 2 進数システムで浮動小数点数として正確に格納できることはわかっていますが、10/7 の出力の小数点以下 7 桁で何が起こっているのか理解できません。

最初の出力テストで、フロートの最後の 5 (7 位) と 4 (7 位) の後に 2 が続くことに気付きました。ダブルスの 8 位は 2 なので、フロートの 7 位は 4 になると思います。

フロート 1.4285715 ダブル 1.4285714285714286

次に、float 形式を使用して次の出力テストを 17 桁まで実行しました。それぞれの 8 位は異なります。フロートは 6 であるため、7 位は 5 に丸められます。

Float 1.428571462631225600 Double 1.428571428571428600

3 番目の出力テストでは、文字列形式で直接キャストして、何が起こるかを確認しました。2回目のテストと同じ結果が得られました。

複雑な浮動小数点ストレージ メソッドに対する単純な質問がある場合は、お詫び申し上げます。

0 投票する
2 に答える
1892 参照

c# - これは、設定された小数点以下の桁数を考慮した有効な float 比較ですか?

公差やパーセンテージの違いではなく、小数点 (有効数字) の設定数を使用して 2 つの浮動小数点数を比較し、それらが等しいかどうかを判断する拡張メソッドを作成しています。float の比較に関する他の質問を見ると、複雑な実装が表示されます。私は単純化しすぎましたか、それともこれは有効ですか?

注:公差ではなく、小数点以下の桁数での比較を探しています。1,000,000 を 1,000,001 に等しくしたくありません。

0 投票する
3 に答える
1181 参照

c - 固定範囲浮動小数点数を効率的に格納する方法

float の (大きな) 配列をヒービングしています。各 float には 4 バイトが必要です。

float の範囲が 0 から 255 の間であるという事実を考慮して、各 float を4 バイト未満で格納する方法はありますか?

配列全体に対して任意の量の計算を実行できます。

私はCを使用しています。

0 投票する
5 に答える
933 参照

c++ - なぜfloat変数はポイントの後の数字を奇妙な方法でカットすることで値を節約するのですか?

私はこの単純なコード行を持っています:

この値を出力するか、スコープを調べると、値 123456.13 が格納されます

わかりました。ポイントの後のすべての数字を 4 バイトに格納することはできませんが、なぜポイントの後に 13 になるのでしょうか? 12じゃないの?

(win32 で vc++ 2010 Express を使用)

0 投票する
1 に答える
295 参照

floating-point - 最大 xeon fpu 精度は?

すべての X86/X64 プロセッサの浮動小数点ユニットの幅が 80 ビットであることは「わかっていると思います」が、それに関する実質的なドキュメントは見つかりません。

参考文献はありますか?

0 投票する
4 に答える
115123 参照

java - BigDecimal の特定の精度を設定する

緯度/経度に BigDecimal を使用する必要があるXSDがあります。私は現在、緯度/経度を double として持っており、それらを BigDecimal に変換していますが、約 12 桁の精度を使用する必要があるだけです。私はそれを設定する方法を理解することができませんでした。誰でもこれで私を助けることができますか?