問題タブ [double-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 投票する
2 に答える
13645 参照

matlab - MATLAB:uint32(4バイト)値を対応するIEEE単精度浮動小数点形式に変換する

MATLAB(r2009b)には、値2147484101を含むuint32変数があります。

この数(その4バイト)は、グラブプロセスでデジタルマシンビジョンカメラから抽出されました。私が理解していることによると、それはカメラのシャッタースピードの単精度形式を保持しています(1 / 260s = 3.8msに近いはずです)。

この32ビット数をIEEE単精度浮動小数点表現に変換するにはどうすればよいですか?MATLABで利用可能なものを使用しますか?

変数nに上記の値を指定して、 nn = dec2hex(n、16)hex2num(nn)の組み合わせを使用してみました。しかし、hex2numは、16進コーディングが倍精度であり、ここにあるような単一ではないことを期待しているようです。少なくとも私はこの方法で奇妙な数字を得ています。

何か案は?

編集:以下の@Mattの答えを試しました:

これは次のようになります。

http://www.h-schmidt.net/FloatApplet/IEEE754.htmlでIEEE754コンバーター(JAVAアプレット)を試しました。

使用:

与える

これらのバイトをアプレット(16進数)に入力すると、MATLABと同じ数値が得られます。

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

java - Java Doubles は数学が苦手です

私は現在Javaで電卓プログラムを書いています。これは私の最初の Java プログラムで、C++ には慣れています。

Java の double は、c++ の double とはまったく異なることに気付きました。Java および C++
4.1*3
that/.1でこれを試してください


12.3 の次に 123である必要があり、c++ ではこの結果が得られますが、Java
では 12.299999999999999 および 122.99999999999999が得られます。

C++ のように double を使用して数学を行うにはどうすればよいでしょうか。プログラムで 12.299999999999999 を使用しても、12.3 と比べてまったく違いがないことは理解していますが、ユーザーが数字を読んでいるとき、これは非常に見苦しいものです。BigDecimal クラスを調べましたが、そのクラスでは三角関数や対数などを実行できません

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

java - 大きな n に対して java.lang.Math.pow(x, n) はどのくらい正確/正確ですか?

(1.0-p)^np が 0 と 1 の間の double (多くの場合 0 に非常に近い) であり、n が正の整数であり、数百または数千のオーダー (おそらくそれより大きい; まだわかりません)を計算したいと思います。可能であればjava.lang.Math.pow(1.0-p, n)、これに組み込みの Java を使用したいと思いますが、関心のある値の範囲でこれを行うと、精度/精度が大幅に失われる可能性があることを少し心配しています。 Java の実装を使用すると、どのような種類のエラーが予想されるかを大まかに把握できますか? それらの実装 (ログおよび/またはテイラー近似?) の内部で何が行われているのかわからないため、適切な推測を危険にさらすことはできません。

私は主に相対誤差 (つまり、1 桁以上ずれていないこと) について心配しています。答えが、Java の実装があまりにも多くのエラーを生成するというものであることが判明した場合、適切なライブラリの推奨事項はありますか (ただし、これが必要にならないことを願っています)。ありがとう。

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

java - 返され、リスト ビューにバインドされた double が切り捨てられる

Android アプリの sqlite データベースにクエリを実行しています。

次に、単純なカーソル アダプターを使用して、データをリスト ビューにバインドします。

データベースから呼び出される 2 つの double があり、リスト ビューには 6 桁の長さしか表示されません。

例:43.6234-116.203

データベース(私はそれをダンプしました)では、これらの数字にはもっと多くの桁があります。

何が悪かったのか?リストビューの行XMLは次のとおりです

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

java - Java:三角法と二重の不正確さがNaNを引き起こす

緯度と経度を使用した距離式があります。

lat1、lng1、lat2、lng2はダブルプリミティブです。それらはダブルプリミティブとして私に来て、それについて私ができることは何もありません。

問題は、同じ経度または緯度のペアがある場合、数式がNaNを返すことがあることです。これは、1よりわずかに大きい数のアークコサインを取得しているためだと思いますが、実際には正確に1である必要があります。ポイントが対蹠的である場合は、おそらく問題が発生します。 1.1。

この問題を解決するにはどうすればよいですか?

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

fortran - 単純なMKLBLASルーチンを使用したFortran倍精度プログラム

単純なプログラム(実数と倍精度の両方を使用)で精度を混合し、BLASのddotルーチンを使用しようとすると、倍精度のピースの出力が正しくなくなります。コードは次のとおりです。

次のように、MKLBLASライブラリを使用してgfortranとifortの両方でコンパイルしてみました。

出力は次のとおりです。

倍精度値を正しく処理するようにddotルーチンを取得するにはどうすればよいですか?

さらに、-autodoubleフラグ(ifort)または-fdefault-real-8(gfortran)フラグを追加すると、両方のddotルーチンが機能しますが、sdotルーチンは失敗します。

編集: 暗黙のnoneステートメントと、ddot関数とsdot関数の2つのタイプステートメントを追加しました。関数呼び出しに指定された型がない場合、ddotは単精度実数として暗黙的に型指定されていました。

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

objective-c - ceil(double) で「double」は何をしますか?

数字 (たとえば 34) があり、その次の 10 の倍数を見つけたいと考えています。私はこれを行うことができます:

  1. 数値を 10 で割る
  2. 整数に丸める
  3. 10 を掛けます。

少し調査した結果、これが Objective C のコードであることがわかりました。

私の質問は次のとおりです: for とは何ですか? また、削除すると、切り上げではなく切り捨てられるの(double)はなぜですか?(double)

浮動小数点形式を「倍精度」に変更するグーグルから理解できますが、正直なところ、これは私には複雑すぎます。誰がそれが何をしているのかを簡単に説明できますか?

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

c - ホストからネットワークへの二重?

倍精度浮動小数点数をネットワーク経由で送信したいと考えています。(標準 C、標準ソケット) データをネットワーク バイト オーダーとの間で変換するための htond または ntohd はありません。私は何をすべきか?頭の中にいくつかの解決策がありますが、一般的な方法を知りたいです。

(gstreamer で使用される gint64 値のように、64 ビット int を送信するための一般的な方法も知りたいです)

編集:これは私が考えた1つの解決策です。任意のサイズの整数で機能すると思いますが、倍精度では正しいですか?

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

javascript - 倍精度加算のヘルプ

私は自分のコードの一部をテストしていましたが、javascript で .1+.2 を追加すると、 .3 の代わりに .30000000000000004 が得られます。私はこれを理解していません。しかし、.1+.3 を追加すると、.4 になります。私はそれをグーグルで検索し、倍精度の追加について何かを見つけました。しかし、私はそれが何であるかを知りません。