問題タブ [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.

0 投票する
3 に答える
1426 参照

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) の範囲に収まるように一連の数値を正規化する方法はありますか?

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

r - 10 進数の最上位桁 (または 0.3 - 0.1 = 0.1 )

この操作は を返す必要がありますが、浮動小数点表現のため、代わりに を2返します。1

私は基本的に、浮動小数点コンピュータの結果ではなく、実際の 10 進数の結果のポイントの後の最初の桁が必要です。この場合ab10 進数は 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:これは機能すると思います (少なくとも、これまでにリストされているすべてのケースで):

提案?

0 投票する
3 に答える
1487 参照

objective-c - Objective-C: 小数点以下 3 桁まで正しくフローリングする

float 値を小数点以下 3 桁まで下げようとしています。たとえば、値 2.56976 は 2.570 ではなく 2.569 になります。私は次のような答えを検索して見つけました:

小数点以下2倍のフロア

そのような答えは正確ではありません。たとえば、コード:

を返すことができますがvalue - 1、これは正しくありません。value と place を乗算すると、value * (double)placed)2100.999999996 のようになります。unsigned int に変更すると、間違った 2100 になります (正しい値は 2101 のはずです)。他の回答にも同じ問題があります。Java では、BigDecimalすべてのハッセルを保存する which を使用できます。

(注: もちろん、2100.9999 を四捨五入することはオプションではありません。これは、「小数点以下 3 桁を正しく」というフローリングのアイデア全体を台無しにするためです)

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

mysql - FLOOR関数を使用したMySQLテーブルパーティション(パーティション関数は許可されていません)?

次の RANGE 関数で分割テーブルを作成しようとしています

私は得続けます

どんなアイデアでも大歓迎ですありがとう

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

haskell - floor が精度を失うのはなぜですか? また、それが等値の推移性にどのように影響するのでしょうか?

大きな整数を定義することから始めますn

次に、 と の動作を調べましs1s2

小数部分は破棄される可能性があるため、最後の 2 つの式が等しいとは予想されませんでした。しかし、平等が自動詞であるとは思っていませんでした (例: n == s1, s1 == s2, but n != s2.)。

さらに、floor40 桁の有効数字を保持しているにもかかわらず、整数部分の精度が失われているようです。

この失われた精度は、減​​算をテストすると明らかになります。

精度が失われるのはなぜですか?floorまた、これがどのように等号の推移性に違反していますか?

floor . sqrt精度を落とさずに計算するための最良のアプローチは何ですか?

0 投票する
2 に答える
1237 参照

mysql - SQL からの結果を整数値に切り捨てる

10.00やなど、さまざまなデータ値 (型) があります2.0010整数値のみを取得するにはどうすればよいので、の代わりに10.002の代わりに取得したい2.00ですか?