問題タブ [floating-point-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.
c# - int を float に型キャストすると、DivideByZeroException が Infinity に変わります
C# で簡単なdivide
関数を作成しました。
を呼び出すMessageBox.Show(divide(3, 0))
と、予想どおり、DivideByZeroException
.
a
そこで、次のように (整数以外の戻り値を取得するために) floatに型キャストすることにしました。
奇妙なことに、これでResult: Infinityが表示されます。
私は間違っているかもしれませんが、これは私にはバグのように思えます。結果がフロートになり、本質的に戻り値3 / 1 x 10^-99999
または同様のものと見なされるためですか?
この結果にはかなりビックリしています。
ruby - Ruby - 乗算の問題
私の出力はこのようなものです -
そして、私はそれを持っていた別のマシンでいつか戻ったことを覚えています..2.32 * 3 = 6
私の間違いは何ですか?これを読んでくれてありがとう。:)
floating-point - 32ビット浮動小数点数を追加します。
浮動小数点数について知りたいと思ったことよりも多くのことを学んでいます。
追加する必要があるとしましょう:
1 10000000 00000000000000000000000
1 01111000 11111000000000000000000
2の補数形式。
最初のビットは符号、次の8ビットは指数、最後の23ビットは仮数です。
科学的記数法に変換せずに、これら2つの数値を加算するにはどうすればよいですか?ステップバイステップでそれを歩くことができますか?
このようなもののための良いリソースはありますか?ビデオと練習例は素晴らしいでしょう。
floating-point - 機械精度の見積もり
倍精度浮動小数点数の計算機イプシロンは2^-53であると言う人もいれば、他の(より一般的には)2^-52と言う人もいます。私は、1以外の整数を使用してマシンの精度を推定し、上下から(matlabで)アプローチすることをめちゃくちゃにして、結果として両方の値を取得しました。実際に両方の値を観察できるのはなぜですか?常に2^-52前後のイプシロンを生成するはずだと思いました。
ruby - Float で to_i を呼び出すと、値から 1 が減算されるのはなぜですか?
Float オブジェクトで数学を行っている場合があり、to_i を呼び出すと 1 減ります。
浮動小数点数が不正確な表現であることは知っていますが、これは予想以上にずれています。どうすればこれを防ぐことができますか?
Ruby 1.8.7 を使用しています (1.8.6 でも発生します)。
c# - Visual Studio 2010 の精度の問題
Microsoft Visual C++ 6.0 で作成されたアプリケーションがあります。Visual Studio 2010 で C# を使用してアプリケーションを書き直しましたが、精度の問題により結果が一致しません。そのような精度の問題の 1 つに、次のようなものがあります。
これは、Visual Studio 2010 で実行した場合の C# コードです。c
値 =0.333333343
ただし、同じコードを値定義の値の後に f を削除すると、Visual C++ 6.0 で実行すると c value = が得られます0.333333
。
誰かがそれを整理して、Visual Studio と Visual C++ 6.0 で c の値を同じにする方法を説明できますか??
実際には、値はウォッチ ウィンドウから取得されます。Visual Studio のバージョンによって、浮動小数点形式の表現が異なる場合があることを知りました。したがって、watch の値は役に立たない場合があります。これが、Visual Studio の両方のバージョンで値を出力した理由であり、結果は次のとおりです。Visual C++ 言語を使用する Visual Studio 6.0 では、0.333333 (6 つの 3) です。
しかし、C# 言語を使用する Visual Studio 10 では、0.3333333 (7 つの 3) です。
では、ビジュアル C++ と同じ結果を生成するように C# プログラムを作成するのを手伝ってくれる人はいますか? (つまり、両方のバージョンで同じ結果を生成するためにフローティング操作を行うにはどうすればよいですか???)
c++ - フロートの端にあるドットは、精度の欠如を示していますか?
コードをステップ実行してVSC++でソフトウェアをデバッグすると、一部のfloat計算が末尾にドットが付いた数値として表示されることに気付きます。
この結果につながる1つの操作は、次のとおりです。
ここで、aは-50から-100前後の大きな負の数であり、bはほとんどの場合1前後です。浮動小数点に関しては、精度の問題に関するいくつかの記事を読みました。私の質問は、末尾のドットがVisual-Studioであるかどうかです。これは、この数値、つまり変数の結果の精度が非常に低いことを示す方法です。そうでない場合、それはどういう意味ですか?
これは今日仕事で出てきました、そして私はより大きな数のために問題があったことを覚えています、それでこれは毎回起こりました(そして「これ」によって私はその末尾のドットを意味します)。しかし、数字が7桁のときに起こったことを覚えています。ここで彼らは、フロートの精度が7桁であることを示しています。
これは問題であり、Visual Studioは最後にドットを付けることでこれを教えてくれますか?
私はそれを見つけたと思います!「仮数は数字のシーケンスとそれに続くピリオドとして指定されます」と書かれています。仮数はどういう意味ですか?これは、PCとDSPでコードを実行する場合で異なる可能性がありますか?なぜなら、私は異なる結果を得るということであり、私にとって奇妙に見えるのはこの期間だけです。それが何を意味するのかわからないからです。
http://msdn.microsoft.com/en-us/library/tfh6f0w2(v=vs.71).aspx
ruby - ruby で 0.0001 から 1 までを数える方法は?
ruby で 0.0001 から 1 までを 0.0001 刻みで数えたい。このコードを書いたのですが、無限ループに入ります。どういうわけか、インタープリターは間違った合計を行います。
これが与える最初の10個の値は次のとおりです。
0.0001、0.0002、0.0003 などである必要があります。どうすれば動作させることができますか? ありがとう!
sql-server - SQL Server 組み込み関数 Stdevp が正しく計算されない
私は SQL Server 2008 を使用しています。私の要件の 1 つは、母集団の標準偏差を計算することです。SQL Server にはstdevp
、同じ組み込み関数が用意されています。私はそれを使用していますが、私が得ている結果に困惑しています。同じ数値のグループの母標準偏差はゼロになるはずですが、ここではわずかな値ではありますが、いくつかの異なる値が得られます。
以下は stdevp クエリです。
私が得る結果は
これは 0.00 である必要があります。
のドキュメントにstdevp
は、フロートを返すと書かれています。したがって、これは丸めの問題であるに違いないと推測していますが、解決策を見つけることができません。