問題タブ [floor]
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.
javascript - JavaScript Math.floor:保証数はどのように切り捨てられますか?
各値が [0-1) になるように配列を正規化したい..つまり、最大値が 1 になることはありませんが、最小値は 0 になる可能性があります。これは、同じ範囲の数値を返すランダム関数と同じです。
これを見ていると、.99999999999999999===1 が真であることがわかりました。同上 (1-Number.MIN_VALUE) === 1 ただし、Math.ceil(Number.MIN_VALUE) は 1 です。その他: Math.floor(.999999999999) は 0 ですが、Math.floor(.99999999999999999) は 1 です。
OK、JSには丸めの問題があります。
[0,1) の範囲に収まるように一連の数値を正規化する方法はありますか?
r - 10 進数の最上位桁 (または 0.3 - 0.1 = 0.1 )
この操作は を返す必要がありますが、浮動小数点表現のため、代わりに を2
返します。1
私は基本的に、浮動小数点コンピュータの結果ではなく、実際の 10 進数の結果のポイントの後の最初の桁が必要です。この場合a
、b
10 進数は 1 桁しかありませんが、ほとんどの場合はそれ以上になります。例:
0.3-0.1=0.2
だから私は欲しい2
0.5-0.001=0.499
だから私は欲しい4
0.925-0.113=0.812
だから私は欲しい8
0.57-0.11=0.46
だから私は欲しい4
0.12-0.11=0.01
だから私は欲しい0
つまり、丸めではなく切り捨てです。私はこれを使用することを考えました:
しかし、それが私にできる最善のことかどうかはわかりません。
更新:実際、機能しません(以下のコメントを参照):
更新 2:これは機能すると思います (少なくとも、これまでにリストされているすべてのケースで):
提案?
objective-c - Objective-C: 小数点以下 3 桁まで正しくフローリングする
float 値を小数点以下 3 桁まで下げようとしています。たとえば、値 2.56976 は 2.570 ではなく 2.569 になります。私は次のような答えを検索して見つけました:
そのような答えは正確ではありません。たとえば、コード:
を返すことができますがvalue - 1
、これは正しくありません。value と place を乗算すると、value * (double)placed)
2100.999999996 のようになります。unsigned int に変更すると、間違った 2100 になります (正しい値は 2101 のはずです)。他の回答にも同じ問題があります。Java では、BigDecimal
すべてのハッセルを保存する which を使用できます。
(注: もちろん、2100.9999 を四捨五入することはオプションではありません。これは、「小数点以下 3 桁を正しく」というフローリングのアイデア全体を台無しにするためです)
mysql - FLOOR関数を使用したMySQLテーブルパーティション(パーティション関数は許可されていません)?
次の RANGE 関数で分割テーブルを作成しようとしています
私は得続けます
どんなアイデアでも大歓迎ですありがとう
haskell - floor が精度を失うのはなぜですか? また、それが等値の推移性にどのように影響するのでしょうか?
大きな整数を定義することから始めますn
。
次に、 と の動作を調べましs1
たs2
。
小数部分は破棄される可能性があるため、最後の 2 つの式が等しいとは予想されませんでした。しかし、平等が自動詞であるとは思っていませんでした (例: n == s1, s1 == s2
, but n != s2
.)。
さらに、floor
40 桁の有効数字を保持しているにもかかわらず、整数部分の精度が失われているようです。
この失われた精度は、減算をテストすると明らかになります。
精度が失われるのはなぜですか?floor
また、これがどのように等号の推移性に違反していますか?
floor . sqrt
精度を落とさずに計算するための最良のアプローチは何ですか?
mysql - SQL からの結果を整数値に切り捨てる
10.00
やなど、さまざまなデータ値 (型) があります2.00
。10
整数値のみを取得するにはどうすればよいので、の代わりに10.00
と2
の代わりに取得したい2.00
ですか?