問題タブ [rounding]
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# - 大きな数値の四捨五入 [c#]
ここで奇妙な問題が発生しています。列に巨大な値が格納されているデータベース テーブルがあります。私のアプリケーション (C#) は、この値を読み取り、double型に保持しています。このアプリケーションは、同じ値を別のテーブルに挿入します。注:最初のテーブルから読み取った値に対して計算/処理を行っていません。2 番目のテーブルを更新するために保持されます。
ここでの問題は、2 番目のテーブルが最初のテーブルとはわずかに異なる値を取得していることです。double型にしておくと数字が四捨五入されているようです。
値の例を次に示します。
元の値: 18014398509481984
新しいテーブルにコピーされた値: 18014398509482000
値は異なって見えますが、実際には両方とも同じです。検索語として18014398509481984 - 18014398509482000を使用して Google 検索を行ったところ、結果0が返されました。これは、両方が同じであることを意味します。
質問:
1 - 両方が同じ場合、2 番目の値が異なって見えるのはなぜですか? 1984 年が2000年に変わったことがわかります。
2 - コンバージョンが発生する理由
3 - この種の変換を回避するにはどうすればよいですか?
どんな助けでも素晴らしいでしょう!
vb.net - Visual Basic での数値の切り捨て
数値を切り捨てる必要がある Visual Basic アプリケーションがあります。たとえば、2.556 は 2.26 ではなく 2.55 になります。
これを使用して、小数点から2文字以上の文字を取り除く関数を使用してこれを行うことができます:
これを行うためのより良い機能はありますか?
c++ - round()とceil()が整数を返さないのはなぜですか?
たまに、いくつかの数値を四捨五入していることに気づき、常に結果を整数にキャストする必要があります。
ceil()すべての丸め関数( 、floor())が整数ではなく浮動小数点数を返すのはなぜですか?私はこれがかなり直感的ではないと思います、そしていくつかの説明が欲しいです!
bash - float で expr を使用するには?
私はそれが本当にばかげた質問であることを知っていますが、bashでこれを行う方法がわかりません:
そうあるべきですが、float をサポートしていないため、66.67expr は と言っています。0expr を置き換えてこの等号を実行できる Linux のコマンドはどれですか?
oracle - オラクル・バンカーズ・ルール
Oracle がバンカーズ ルール(丸め法)を使用しないのはなぜですか?
python - 浮動小数点を丸めずに文字列に変換する
説明する必要がない理由で、フロートを文字列に変換してlen()でカウントする必要があるプログラムを作成しています。ただし、str(float(x))を使用すると、文字列に変換されるときにxが丸められ、すべてが破棄されます。誰かがそれの修正を知っていますか?知りたい場合に使用されるコードは次のとおりです。
opengl - OpenGL: 2 で割り切れない場合にテクスチャが歪む
表示に OpenGL を使用するゲーム エンジンがあります。そのための小さなメニューをコーディングしましたが、テキストをレンダリングした後、奇妙なことに気付きました。 http://img43.imageshack.us/i/garbagen.png/
ご覧のとおり、フォントはやや判読不能ですが、下部 ("Tests" など) は意図したとおりに見えます。端が切れるので、画面上の位置が読みやすさに影響するようです。フォントは 9x5 で、この値を 2 で割って幅/高さを取得し、オブジェクトを中央からレンダリングします。したがって、4.5x2.5 ピクセル (単純な長方形の x、y、幅、高さに float を使用) では、x.5 など以外の場所でレンダリングすると、テクスチャが台無しになります。ただし、今のところ2台のコンピューターでしかそうしていませんが、テキストが読めなくなるため、このエラーが発生するのは望ましくありません。私はそれを 4.55x2.55 にすることができ (2 で割るときに少し余分なサイズを追加することによって)、すべてのマシンで適切にレンダリングされます (または、少なくとも問題のある 2 つのマシンではそれほど頻繁には発生しません)。それを維持するにはあまりにもひどいハックであり、問題を完全に解決するわけではありません。そして、テキストを拡大してフォントを「太く」見せる可能性があります。だから私の質問は...これを防ぐことができ、それらの値を整数に交換しない方法はありますか? (フロートが比較して提供するわずかな違いが必要です)。どの幅/高さが 2 で割り切れるか、そうでないものは別の方法で処理できるかを調べることはできますか? 本当にビデオカードの問題である場合、それを回避することは可能でしょうか? 質問に欠けているものがある場合は申し訳ありません。私はインターネットで頻繁に質問することはありませんし、コーディングの研究もしていません。必要な行またはコードのチャンクを喜んで提供します。それらの値を整数に交換しませんか?(フロートが比較して提供するわずかな違いが必要です)。どの幅/高さが 2 で割り切れるか、そうでないものは別の方法で処理できるかを調べることはできますか? 本当にビデオカードの問題である場合、それを回避することは可能でしょうか? 質問に欠けているものがある場合は申し訳ありません。私はインターネットで頻繁に質問することはありませんし、コーディングの研究もしていません。必要な行またはコードのチャンクを喜んで提供します。それらの値を整数に交換しませんか?(フロートが比較して提供するわずかな違いが必要です)。どの幅/高さが 2 で割り切れるか、そうでないものは別の方法で処理できるかを調べることはできますか? 本当にビデオカードの問題である場合、それを回避することは可能でしょうか? 質問に欠けているものがある場合は申し訳ありません。私はインターネットで頻繁に質問することはありませんし、コーディングの研究もしていません。必要な行またはコードのチャンクを喜んで提供します。
c++ - ゼロから離れた数値のc++丸め
こんにちは私はC++でこのように(ゼロから離れて)2つの数値を丸めたいです:
これを行うための効率的な方法は何ですか?
c - 正確でない表現による浮動小数点数の丸め
一部の財務計算で、浮動小数点数の丸めに問題があります。
基本的に、1000000000.555 のような金額を小数点以下 2 桁に丸めます。ただし、この数値の float 表現は 1000000000.5549999 であるため、正しい 1000000000.56 ではなく、1000000000.55 に切り捨てられます。
この問題を安全に回避する方法はありますか? これまでのところ、表現可能な最小の浮動小数点数を丸め操作の前に常に金額に追加することしかできませんでしたが、これがすべての場合に安全かどうかはわかりません。
コードは C で書かれており、windows32/64/linux/solaris で実行する必要があるため、残念ながら .net の Decimal データ型のような便利なものにアクセスできません。
どんな入力でも役に立ちます。
ありがとう、リッカード
javascript - JavaScript の奇妙な丸め問題
丸めのための次の JavaScript 関数があります。
ほとんどの場合、問題なく機能しますが、まれに返される値が 1 桁多く、常に 5 になることがあります。
numberofdigits = 3 の結果リストの例:
5.329 - 5.081 - 4.271 - 3.271 - 2.1525 - 2.1375 - 2.1225 - 1.997 - 2.044 - 2.031 - 2.028
誰かがこれを説明できますか?または、この問題を防ぐより良い丸め関数を提供してください。