タグ付けされた質問 「floating-point」

浮動小数点数は実数の近似値であり、整数より広い範囲を表すことができますが、同じ量のメモリを使用しますが、精度は低くなります。質問が小さな算術エラー(たとえば、0.2 + 0.1が0.300000001に等しいのはなぜですか)または10進数の変換エラーについての質問である場合は、投稿する前に以下のリンクの「情報」ページをお読みください。


10
精度を失うことなく、floatをdoubleに変換します
プリミティブfloatがあり、プリミティブdoubleが必要です。単純にフロートをダブルにキャストすると、奇妙な精度が得られます。例えば: float temp = 14009.35F; System.out.println(Float.toString(temp)); // Prints 14009.35 System.out.println(Double.toString((double)temp)); // Prints 14009.349609375 ただし、キャストする代わりに、floatを文字列として出力し、文字列をdoubleとして解析すると、必要なものが得られます。 System.out.println(Double.toString(Double.parseDouble(Float.toString(temp)))); // Prints 14009.35 文字列に戻って戻るよりも良い方法はありますか?

2
静かなNaNとシグナリングNaNの違いは何ですか?
浮動小数点について読んだところ、NaNが演算から生じる可能性があることを理解しています。しかし、これらが概念であるかを正確に理解できません。それらの違いは何ですか? C ++プログラミング中に作成できるのはどれですか?プログラマーとして、sNaNを引き起こすプログラムを作成できますか?

8
JVMのJITコンパイラーは、ベクトル化された浮動小数点命令を使用するコードを生成しますか?
私のJavaプログラムのボトルネックは、ベクトルドット積の束を計算するためのいくつかのタイトなループであるとしましょう。はい、プロファイリングしました、はい、それがボトルネックです、はい、それは重要です、はい、それはまさにアルゴリズムです。はい、Proguardを実行してバイトコードを最適化しました。 仕事は本質的に、ドット積です。同様に、2つfloat[50]あり、ペアワイズ積の合計を計算する必要があります。SSEやMMXのように、この種の操作をすばやく大量に実行するためのプロセッサ命令セットが存在することは知っています。 はい、おそらくJNIでネイティブコードを書くことでこれらにアクセスできます。JNIの呼び出しにはかなりの費用がかかります。 JITがコンパイルするものまたはコンパイルしないものを保証できないことはわかっています。誰もがしている、これまで、これらの命令を使用してJIT生成コードのことを聞きましたか?もしそうなら、このようにコンパイル可能にするのに役立つJavaコードについて何かありますか? おそらく「ノー」です。尋ねる価値があります。

6
0.0と1.0の間にはいくつの倍数がありますか?
これは何年も頭に浮かんだことですが、前に尋ねる時間はありませんでした。 多くの(疑似)乱数ジェネレーターが0.0〜1.0の乱数を生成します。数学的には、この範囲には無限の数がありますdoubleが、浮動小数点数なので、精度は有限です。 だから質問は: double0.0と1.0の間にいくつの数字があるのですか? 1と2の間の数だけありますか?100から101の間?10 ^ 100と10 ^ 100 + 1の間? 注:違いがある場合はdouble、特にJavaの定義に興味があります。

18
Pythonでのフロートの簡単なきれいな印刷?
フロートのリストがあります。単純に言えprintば、次のように表示されます。 [9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006] リストを走査するprint "%.2f"ためにforループが必要になるを使用することもできますが、より複雑なデータ構造では機能しません。次のようなものが欲しい(私はこれを完全に補っている) >>> import print_options >>> print_options.set_float_precision(2) >>> print [9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006] [9.0, 0.05, 0.03, 0.01, 0.06, 0.08]


10
C ++で長い方程式を実装する場合、高レベルのアプローチでパフォーマンスを向上させるにはどうすればよいですか
私はいくつかの工学シミュレーションを開発しています。これには、ゴムのような材料の応力を計算するために、この方程式のようないくつかの長い方程式を実装することが含まれます。 T = ( mu * ( pow(l1 * pow(l1 * l2 * l3, -0.1e1 / 0.3e1), a) * a * ( pow(l1 * l2 * l3, -0.1e1 / 0.3e1) - l1 * l2 * l3 * pow(l1 * l2 * l3, -0.4e1 / 0.3e1) / 0.3e1 ) * pow(l1 …


2
この浮動小数点最適化は許可されていますか?
私は、float大きな整数を正確に表す能力を失う場所を調べてみました。だから私はこの小さなスニペットを書きました: int main() { for (int i=0; ; i++) { if ((float)i!=i) { return i; } } } このコードは、clangを除くすべてのコンパイラで機能するようです。Clangは単純な無限ループを生成します。ゴッドボルト。 これは許可されますか?はいの場合、QoIの問題ですか?

4
固定サイズの浮動小数点型
stdint.h(C99)、ブースト/ cstdint.hpp、及びcstdint(C ++ 0X)ヘッダタイプは、とりわけ、ありますint32_t。 同様の固定サイズの浮動小数点型はありますか?のようなものfloat32_t?
90 c++  c  boost  floating-point 


4
1.0に最も近いdoubleは何ですか、それは1.0ではありませんか?
プログラムで1.0に最も近いdoubleを取得する方法はありますが、実際には1.0ではありませんか? これを行うハックな方法の1つは、doubleを同じサイズの整数にmemcpyしてから、1を減算することです。IEEE754浮動小数点形式が機能する方法では、これにより、小数部をすべてゼロ(1.000000000000)からすべて1(1.111111111111)に変更しながら、指数が1つ減少します。ただし、整数がリトルエンディアンで格納され、浮動小数点がビッグエンディアンで格納されるマシンが存在するため、常に機能するとは限りません。

4
floatを丸めずに文字列に変換する
説明する必要がない理由で、floatを文字列に変換してlen()でカウントする必要があるプログラムを作成しています。ただし、str(float(x))を使用すると、xが文字列に変換されるときに丸められ、全体が破棄されます。誰かがそれに対する修正を知っていますか?知りたい場合に使用するコードは次のとおりです。 len(str(float(x)/3))

14
Swift-小数が0に等しい場合、フロートから小数を削除するにはどうすればよいですか?
小数点以下1桁の距離を表示していますが、この小数点以下が0(例:1200.0Km)の場合は削除したいのですが、どうすれば迅速に実行できますか?私はこの番号を次のように表示しています: let distanceFloat: Float = (currentUser.distance! as NSString).floatValue distanceLabel.text = String(format: "%.1f", distanceFloat) + "Km"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.