問題タブ [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.

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

java - Java浮動小数点高精度ライブラリ

数千桁の精度で浮動小数点または固定小数点演算を高速に実装するJava用のライブラリはどれですか?彼らはどのくらいのパフォーマンスを発揮しますか?

私の要件は、2倍の桁数で4倍の時間がかかる単純な乗算アルゴリズムよりも優れた乗算アルゴリズムを実装することです(乗算アルゴリズムと比較してください)。

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

.net - .NET で 2 つの整数値を除算して浮動小数点商を取得する最もパフォーマンスの高い方法は何ですか?

C# で次の署名を検討してください。

次の実装の間にパフォーマンスの違いはありますか?

上記の両方が同じ答えを返すと仮定しています。

他の同等のソリューションを見逃しましたか?

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

php - 浮動小数点を使用した Php 精度 - 複雑な方程式 = 1

私は次の方程式を持っています

1 - ((.5 * 0.83333333333333) ^ 2 + (.5 * 0.83333333333333) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2 + (.5 * (1 - 0.83333333333333)) ^ 2)

Php5 では、これは .63 ではなく 1 という結果になります (OSx と Centos の 2 つのマシンで)。このような方程式を行うには、Php の bc 数学関数のみを使用する必要がありますか?

0 投票する
6 に答える
19430 参照

python - floatとdecimal.Decimalの小数点以下の桁数の問題

フロートでかなりの精度を失っているようです。

たとえば、行列を解く必要があります。

これは、テキストファイルからマトリックスをインポートするために使用するコードです。

ガウス・ザイデルを使用して解く必要があるため、x、y、zの方程式を再配置する必要があります。

これが私が方程式を再配置するために使用するコードです。bは係数の行列であり、yは答えベクトルです。

しかし、私が返す答えは小数点以下の桁数まで正確ではありません。

たとえば、上から2番目の方程式を並べ替えると、次のようになります。

私が得るものは:

これは大きな問題ではないように思われるかもしれませんが、数値を非常に高い累乗に上げると、エラーは非常に大きくなります。これを回避する方法はありますか?クラスを試しましたDecimalが、パワー(つまり)ではうまく機能しませんDecimal(x)**2

何か案は?

0 投票する
6 に答える
111322 参照

objective-c - Objective Cでfloatをintに変換するにはどうすればよいですか?

まったくの初心者の質問ですが、これは私を怒らせています!私はこれを試しています:

しかし、本質的にintegerValueはfloatでは機能しないというエラーが表示されます。

どうすればいいのですか?

0 投票する
9 に答える
287370 参照

string - Perlで文字列を数値に変換するにはどうすればよいですか?

10 進値を保持する文字列があり、その文字列を浮動小数点変数に変換する必要があります。したがって、私が持っている文字列の例は「5.45」で、.1 を追加できるように同等の浮動小数点が必要です。インターネットで検索しましたが、文字列を整数に変換する方法しかわかりません。

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

sql-server-2005 - SQL Server 2005 で値を FLOAT にキャストする際のエラー

病気で外出中の同僚のためにストアド プロシージャを機能させようとしています (そのため、指導を求めることはできません)。

この正確な手順を持つ SQL Server 2005 データベースがあり、この開発データベースと一致するようにテスト データベースを変換するスクリプトを作成しようとしています。私のスクリプトには、次のような行がいくつかあります。

この手順は基本的に、「フィールド = @input である別のテーブルからテーブル (すべてのフィールド) に挿入する」ことを行っています。

スクリプトを実行すると、次のエラーが表示されます。

プロシージャは作成されません。しかし、開発環境とテスト環境の両方でソース テーブルを比較したところ、完全に一致しました。そして、手順は開発環境でスクリプト化されたとおりに存在します。

このスクリプトを作成するために特別なアクロバットを行う必要があったかどうか、同僚に尋ねることはできません。私はいくつかの検索を行い、おそらく float は FLOAT(6,1) (またはそのようなもの) の形式である必要があることを確認しましたが、それは彼が持っているものではありません。本当に開発者と一致しません。

追加した

コメント者は正しいです。エラーは次のキャストにあると言われました:

クエリ全体を投稿できますが、長いです。代わりに、キャストされたフィールドと、最初と最後のフィールドだけを含めます。その 1 つのフィールドが間違いだったのか、ストレート キャストが必要だったのか、同僚に尋ねたいと思います。彼は来週の月曜日に戻ってくるので、それまで待つ必要があるかもしれません.

our_File_CHAR は次のように定義されます

our_File は次のように定義されます

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

performance - Core2x87浮動小数点パフォーマンス

私は、その性質上、浮動小数点を多用し、単純に遅い、いくつかの数値計算コードを使用しています。これは調査コードであるため、1つのアーキテクチャに合わせて調整でき、Core2Quadボックスで実行されます。私の理解では、Pentium 4 / Netburstアーキテクチャでは、Intelはx87 FPUを大幅に削減し、よりSSE2中心の設計を採用しました。これにより、x87コードでひどいパフォーマンスが発生しました。ただし、Core 2アーキテクチャは、NetburstよりもP6アーキテクチャと密接に関連しています。

私のコンパイラはSSEをまったくターゲットにしておらず、これをうまく実行できるコンパイラはほとんどないというのが私の理解です。さらに、私はかなり最先端のD言語を使用しているため、使用できるコンパイラーがあまりありません。ただし、既存のコードの慣性と、その未熟さにもかかわらず、私はDが本当に好きなので、言語を切り替えたくありません。

Core2アーキテクチャにもx87FPUが削減されていますか?もしそうなら、これを回避するための最良の方法は何ですか?

0 投票する
23 に答える
233634 参照

java - Java で double を使用して精度を保持する

上記のコードは次を出力します。

これを11.4で印刷する(または使用できるようにする)にはどうすればよいですか?

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

c - i386 から x86_64 に移行する際の浮動小数点精度

Linux x86 32 ビット用に開発されたアプリケーションがあります。多くの浮動小数点演算と、結果に応じた多くのテストがあります。現在、x86_64 に移植していますが、このアーキテクチャではテスト結果が異なります。アーキテクチャごとに個別の結果セットを保持したくありません。

記事An Introduction to GCC - for the GNU compilers gcc and g++によると、問題は X86_64 の GCC がfpmath=sseを想定しているのに対し、x86 はfpmath=387を想定していることです。387 FPU はすべての演算に80 ビットの内部精度を使用し、結果を特定の浮動小数点型 (float、double、または long double) にのみ変換しますが、SSE はオペランドの型を使用して内部精度を決定します。

独自のコードをコンパイルするときに-mfpmath=387 を強制でき、すべての操作が正しく機能しますが、ライブラリ関数 (sin、cos、atan2 など) を呼び出すたびに、結果が再び間違っています。libmが fpmath オーバーライドなしでコンパイルされたためだと思います。

387 エミュレーションを使用して自分で libm (glibc) をビルドしようとしましたが、あちこちで多くのクラッシュが発生しました (何か間違ったことをしたかどうかはわかりません)。

プロセス内のすべてのコードが x86_64 で 387 エミュレーションを使用するように強制する方法はありますか? それとも、両方のアーキテクチャで libm と同じ値を返すライブラリがあるのでしょうか? 助言がありますか?

「80ビット精度は必要ですか?」という質問については、個人の運用としては問題ないと言わざるを得ません。この単純なケースでは、違いは非常に小さく、違いはありません。ただし、多くの操作を組み合わせると、エラーが伝播し、最終結果の違いはそれほど小さくなくなり、違いが生じます。だから私は80ビットの精度が必要だと思います。