問題タブ [floating-point]
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.
c++ - リリース ビルドとデバッグ ビルド間で動作が異なる Float 値
アプリケーションをリリース モードとデバッグ モードでコンパイルすると、異なる浮動小数点値が生成されます。私が見つけた唯一の理由は、バイナリ トレース ログを保存したことと、リリース ビルドのログがデバッグ ビルドからわずかにずれていることです。32 ビット浮動小数点値の下位 2 ビットが約 1/2 異なるようです。ケースの。
この「違い」はバグだと思いますか、それともこの種の違いが予想されますか。これはコンパイラのバグですか、それとも内部ライブラリのバグですか。
例えば:
問題は X360 コンパイラに関するものです。
c# - 浮動小数点数が整数かどうかをテストする
このコードは機能します (C# 3)
- これを行うより良い方法はありますか?
- 無関係な理由で、ダブルキャストを避けたいので; これ以外にどんな良い方法がありますか?(たとえ上手くいかなくても)
注:何人かの人々は、 == がしばしば浮動小数点の格下げに問題があるという (重要な) ポイントを指摘しました。この場合、0 から数百の範囲の値が期待され、それらは整数であると想定されます (非 int はエラーです)。
python - decimal モジュールの有効数字
そこで、問題を解決するための Python スクリプトをいくつか作成して、物理学の宿題を解決しようと決心しました。私が直面している問題の 1 つは、有効数字が常に適切に表示されるとは限らないことです。たとえば、これは有効数字を適切に処理します。
しかし、これはしません:
だから2つの質問:
- これは有効数字の予想される量ではないというのは正しいですか、それとも有効数字の計算をブラッシュアップする必要がありますか?
- 小数の精度を手動で設定せずにこれを行う方法はありますか? 確かに、numpy を使用してこれを行うことができると確信していますが、好奇心から decimal モジュールでこれを行う方法があるかどうかを知りたいだけです。
c# - フロートを解析する最良の方法は?
CSharp で float を解析する最良の方法は何ですか? TryParseについては知っていますが、特に疑問に思っているのは、ドット、コンマなどです。
ウェブサイトに問題があります。私の開発サーバーでは、「,」は小数用で、「.」は「.」です。セパレーター用。ただし、prod サーバーでは逆です。どうすればこれを最もよく捉えることができますか?
delphi - Delphi での writeln/readln による実数の精度
私のクライアント アプリケーションは、writeln と readln を使用して、テキスト ファイルを介して real 型のかなりの数の変数をエクスポートおよびインポートします。コードが次のようになるように、書き込まれたフィールドの幅を広げようとしました。
エクスポートしてから再度インポートしてエクスポートし、ファイルを比較すると、最後の 2 桁に違いがあります。
これは実際にアプリに違いをもたらすため、クライアントは私がそれについて何ができるかを知りたがっています. 今、それを行うのが書き込み/読み取りだけであるかどうかはわかりませんが、ヘイスタックに再び飛び込む前に、簡単な質問を投げかけようと思いました。これでバイナリにする必要がありますか?
これは通貨などを扱うアプリではありません。ファイルとの間で値を読み書きするだけです。浮動小数点が時々少し奇妙であることは知っていますが、ルーチンの 1 つ (writeln/readln) で面白いことが起こっているのではないかと思いました。
c++ - float を最小の増分 (またはそれに近い値) で変更する方法は?
私はdouble
値を持っており、元の値f
にできるだけ近いが元の値よりも厳密に大きい (または小さい) 新しい値を取得するために、値をわずかに大きく (または小さく) 微調整する方法が必要です。
最後のビットに近づく必要はありません。どのような変更を行っても、異なる値が生成され、元の値に丸められないことが保証されることがより重要です。
c# - C# では double は float よりも高速ですか?
float の大きな配列を読み取り、それらを使用していくつかの簡単な操作を実行するアプリケーションを作成しています。double よりも高速だと思ったので float を使用していますが、いくつかの調査を行った後、このトピックについて混乱があることがわかりました。誰でもこれについて詳しく説明できますか?
java - 紛らわしい return ステートメント
x
変数が int と等しいかどうかを確認していることから、IFステートメントが何をしているのかを正確に理解できていません0
。これがtrue
変数の絶対値y
が返される場合...これは私がプロットを失ったときです.なぜreturnステートメントは次に含めるの<= ESPILON
でしょうか? 確かに、これはイプシロンの値以下ということですか? もしそうなら、それはどのように機能していますか?それが意味しない場合、それはどういう意味ですか?
(ジャバコード)
optimization - 最近FixedPointを使用する場合
激しい数値計算のために、浮動小数点の代わりに固定小数点を使用することを検討しています。もちろん、固定小数点タイプのサイズが何バイトであるか、どのCPUで実行されるか、(Intelの場合)MMXやSSE、またはその他の新しいものを使用できるかどうかは重要です...
浮動小数点がこれまでになく速く実行される最近では、固定小数点を検討する価値があるのではないかと思います。数パーセント以上重要であると言える一般的な経験則はありますか?35,000フィートの数値パフォーマンスの概要は何ですか?(ところで、DSPや特殊な組み込みシステムではなく、ほとんどのコンピューターに見られる一般的なCPUを想定しています。)
c - Haskell FFI /CMPFRライブラリラッパーの問題
Doubleの代わりに任意精度の浮動小数点/ドロップを作成するために、FFIを使用してMPFRをラップしようとしていますが、すべての努力にもかかわらず、最も単純なコードは機能しません。コンパイルして実行しますが、しばらく動作するふりをした後、嘲笑してクラッシュします。単純なCバージョンのコードは、数値「1」から(小数点以下640桁)までの合計10,000回をうまく出力します。Haskellバージョンは、同じことをするように求められた場合、「1.0000 ... 0000」の289回の印刷後、および385回の印刷後、アサーションの失敗と爆弾を引き起こし、データをサイレントに破損(?)します。「動作するはず」なので、これをデバッグする方法がわかりません。
コードはhttp://hpaste.org/10923で閲覧でき、 http: //www.updike.org/mpfr-broken.tar.gzでダウンロードできます。
FreeBSD6ではGHC6.83を、Mac OSXではGHC6.8.2を使用しています。ライブラリとヘッダーファイルの正しいパス(Makefileを変更)とともにMPFR(2.3.2でテスト済み)をインストールする必要があることに注意してください。 GMPから)これを正常にコンパイルします。
質問
なぜCバージョンは機能するのに、Haskellバージョンはフレークアウトするのですか?FFIに近づくときに他に何が欠けていますか?StablePtrsを試しましたが、まったく同じ結果になりました。
他の誰かが私のコードをコンパイルして実行することにより、これがMac / BSDのみの問題であるかどうかを確認できますか?(Cコードは「機能」しますか?Haskellコードは「noworks」は機能しますか?)LinuxとWindowsの誰かがコンパイル/実行して、同じ結果が得られるかどうかを確認できますか?
Cコード:(works.c)
Haskellコード:(Main.hs---動作しません)