問題タブ [long-double]

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 に答える
71 参照

c++ - 特定の大きさを超える素因数を素因数できないのはなぜですか?

12 桁の素因数を計算するプログラムを C++ で作成しようとしています。これが私のコードです:

これは (少なくとも) 小さい数値では問題なく機能しますが、非常に大きな数値を使用すると機能しなくなります。どうしてこれなの?より大きな整数型を使用する必要がありますか? それとも、コード自体に何か問題がありますか?

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

c - long-double 計算機が精度を失うのはいつですか?

私の仕事は、 で動作する電卓のコードを書くことでしたlong double。ある時点以降、電卓は精度を失うことが判明しました。たとえば、正しく計算されますが、結果が得られる9999999 ^ 2限り、99999999 ^ 2本来よりも 1 大きくなります。浮動小数点数の精度についてはすでに読んだことがありますが、すべての質問は小数に関するものです。gmp ライブラリを使用して修正できることはわかっていますが、私の質問は次のとおりです。

この問題に取り組む他の方法はありますか?
long double 計算機が正確であるポイントを計算/表示する方法は?

main.c

evalexpression.c

calcfilter.c

0 投票する
0 に答える
63 参照

floating-point - 使用されている「ロングダブル」タイプを確認することはできますか?

"long double" 型が "double" の同義語であるか、真の 128 ビット IEEE 4 倍精度であるか、80 ビット Intel 拡張フォーマットであるか、または "ダブルダブル」。

実行時にこれを確認することは可能ですか? どのように?

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

c - AT&Tアセンブリで倍精度の80ビット浮動小数点数をメモリからXMM0に移動するにはどうすればよいですか

積分を計算する AT&T アセンブリ関数を作成しました。C で記述されたコードによって呼び出されるため、戻り値として渡す必要があります。単精度floatおよび倍精度として正常に返すことができましたdouble。しかし、80 ビットの拡張倍精度で計算できることはわかっているので、それを C に渡したいと思っています。

渡したい値が、TOP が指す FPU レジスタで指されていると仮定しましょう。関数を呼び出す方法は次のとおりです。

フロートの場合:

ダブルの場合:

私の質問は次のとおりです。Cがレジスタ long doubleから読み取れるように、次のコードをどのように完成させることができますか。%XMM0

ロングダブルの場合:

その後どうすればいいですか?maxからに80 ビットを移動するにはどうすればよい%XMM0ですか?

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

c - C の long double の書式指定子 %Lf が期待どおりに機能しない

C の基本をオンライン ビデオで学習しているときに、作成者は以下のコードを共有して、float、double、long double の違いを見つけました。このプログラムは、64 ビットの Windows 10 ラップトップで実行されている Eclispse で実行しました。

どういうわけか、期待される出力が得られません。Eclipse コンソールで取得した出力を追加しました。誰が何が悪かったのかを理解するのを手伝ってくれますか

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

double - double ではなく long double を返します

PCのイプシロンを見つけたいプログラムをc ++で書いています。結果を倍精度 (2.2204460492503131 E-16) にしたいのですが、代わりに出力は 1.0842 E-019 になり、これは長い倍精度のイプシロンです。

私のプログラムはこれです:

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

c++ - コンピュータメモリのように long double のバイナリ表現を印刷する方法は?

long double何らかの理由で、数値のバイナリ表現を出力する必要があります。コンピューターのメモリに残っている正確な形式を確認したい。

私は次の質問に答えましたunion。の場合float、代替データ型はunsigned int両方とも 32 ビットでした。についてdoubleunsigned long int、両方とも 64 ビットでした。しかし oflong doubleでは、96 ビット/128 ビット (プラットフォームによって異なります) であり、同様の同等のメモリ コンシューマーはありません。それで、解決策は何でしょうか?

訪問した質問:

  1. C++ で浮動小数点数のバイナリ表現を出力します
  2. double のバイナリ表現
  3. double の正確なバイナリ表現
  4. float または double のバイナリ表現を表示するにはどうすればよいですか?

注意:

これは、数値がメモリに保存されている方法を (cout を使用して) 印刷するにはどうすればよいですか?という質問の重複としてマークされています。!

本当にそうですか?質問で言及された質問は、整数について話し、その解決策として受け入れbitsetられたのは、浮動小数点部分を切り捨てることでした。私の主な見解は、その質問の内容とは関係のない浮動小数点表現です。