Math.roundがlongを返すのにMath.floorがdoubleを返すのはなぜですか?

レオジェイ:

なぜ矛盾があるのですか?

polygenelubricants:

矛盾はありません。メソッドは、単に異なる仕様に従うように設計されています。

したがって、設計roundではa longrint丸め丸めdoubleます。JDK 1.0以降、これは常に当てはまります。

その他のメソッドがJDK 1.2で追加されました(例:toRadianstoDegrees)。他の人が(例えば1.5で追加されたlog10ulpsignum、など)、まだいくつかのより多くの(例えば1.6で追加されたcopySigngetExponentnextUp、など)(のために見て以来:ドキュメントのメタデータ)。しかし、roundrintいつもお互いに彼らは初めから今のやり方がありました。

おそらく、おそらく代わりにlong rounddouble rint、それらに名前を付けるために、より「一貫」だろうdouble roundlong rlong、これは理屈っぽいです。とはいえ、これを断定的に「不整合」と呼ぶことに固執する場合、その理由は「それが避けられないため」と同じくらい満足できないかもしれません。

以下は、Effective Java 2nd Edition、Item 40:Design method signatures慎重に引用したものです。

疑問がある場合は、JavaライブラリAPIを参考にしてください。これらのライブラリーのサイズと範囲を考えると、多くの不整合がありますが(不可避ですが)、かなりの量のコンセンサスもあります。

遠縁の質問

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Math.floorがdoubleを返すのはなぜですか?

分類Dev

Math.round(0.49999999999999994)が1を返すのはなぜですか?

分類Dev

Math.round(-0.2)が-0を返すのはなぜですか?

分類Dev

Math.ceilがdoubleを返すのはなぜですか?

分類Dev

Math.floor(Math.random())関数が常に「0」を返すのはなぜですか?

分類Dev

Math.pow(long、(1/3))が常に1を返すのはなぜですか?

分類Dev

Math.round()がNaN引数に対して0を返すのはなぜですか?

分類Dev

Pythonのmath.ceil()およびmath.floor()演算が整数ではなく浮動小数点を返すのはなぜですか?

分類Dev

Pythonのmath.ceil()およびmath.floor()演算が整数ではなく浮動小数点を返すのはなぜですか?

分類Dev

Math.Round(2.5)が3ではなく2を返すのはなぜですか?

分類Dev

Math.floor(float)がないのはなぜですか?

分類Dev

math.max()が整数の配列でNaNを返すのはなぜですか?

分類Dev

math.random(999999999999)がLuaで1を返すのはなぜですか?

分類Dev

Math.min([1,2])がNaNを返すのはなぜですか?

分類Dev

Math.min([1,2])がNaNを返すのはなぜですか?

分類Dev

math.js の math.simplify("1e-10").toString() が 0 を返すのはなぜですか?

分類Dev

Java Mathライブラリに浮動小数点を返す関数がないのはなぜですか?

分類Dev

Math.ceilとMath.floorが同じ値を返す

分類Dev

math.powが正しい答えを返すのに、numpy.powerが小さな指数に対して0を返すのはなぜですか?

分類Dev

この単純なMath.max()の例がNaNを返すのはなぜですか?

分類Dev

math.Pow10(e int)がint64ではなくfloat64を返すのはなぜですか?

分類Dev

Pythonでは、なぜmath.floor(4.9999999999999999)== 5なのですか?

分類Dev

math.ceilがフラスコシェルコマンドで整数を返すのはなぜですか?

分類Dev

Math.max(timeLeft / 1000、0)が最大値として0を返すのはなぜですか?

分類Dev

Math.random()関数を実行すると、「1」が排他的であるのに「1」を返すことができるのはなぜですか?

分類Dev

Math.log10が一部のシステムで機能するのに、他のシステムでは未定義を返すのはなぜですか?

分類Dev

なぜMath.pow私に正しい値を返さないのですか?

分類Dev

JavaのMath.round()がこの数値を処理できないのはなぜですか?

分類Dev

Math.Round()を使用すると、常に下限が返されます

Related 関連記事

  1. 1

    Math.floorがdoubleを返すのはなぜですか?

  2. 2

    Math.round(0.49999999999999994)が1を返すのはなぜですか?

  3. 3

    Math.round(-0.2)が-0を返すのはなぜですか?

  4. 4

    Math.ceilがdoubleを返すのはなぜですか?

  5. 5

    Math.floor(Math.random())関数が常に「0」を返すのはなぜですか?

  6. 6

    Math.pow(long、(1/3))が常に1を返すのはなぜですか?

  7. 7

    Math.round()がNaN引数に対して0を返すのはなぜですか?

  8. 8

    Pythonのmath.ceil()およびmath.floor()演算が整数ではなく浮動小数点を返すのはなぜですか?

  9. 9

    Pythonのmath.ceil()およびmath.floor()演算が整数ではなく浮動小数点を返すのはなぜですか?

  10. 10

    Math.Round(2.5)が3ではなく2を返すのはなぜですか?

  11. 11

    Math.floor(float)がないのはなぜですか?

  12. 12

    math.max()が整数の配列でNaNを返すのはなぜですか?

  13. 13

    math.random(999999999999)がLuaで1を返すのはなぜですか?

  14. 14

    Math.min([1,2])がNaNを返すのはなぜですか?

  15. 15

    Math.min([1,2])がNaNを返すのはなぜですか?

  16. 16

    math.js の math.simplify("1e-10").toString() が 0 を返すのはなぜですか?

  17. 17

    Java Mathライブラリに浮動小数点を返す関数がないのはなぜですか?

  18. 18

    Math.ceilとMath.floorが同じ値を返す

  19. 19

    math.powが正しい答えを返すのに、numpy.powerが小さな指数に対して0を返すのはなぜですか?

  20. 20

    この単純なMath.max()の例がNaNを返すのはなぜですか?

  21. 21

    math.Pow10(e int)がint64ではなくfloat64を返すのはなぜですか?

  22. 22

    Pythonでは、なぜmath.floor(4.9999999999999999)== 5なのですか?

  23. 23

    math.ceilがフラスコシェルコマンドで整数を返すのはなぜですか?

  24. 24

    Math.max(timeLeft / 1000、0)が最大値として0を返すのはなぜですか?

  25. 25

    Math.random()関数を実行すると、「1」が排他的であるのに「1」を返すことができるのはなぜですか?

  26. 26

    Math.log10が一部のシステムで機能するのに、他のシステムでは未定義を返すのはなぜですか?

  27. 27

    なぜMath.pow私に正しい値を返さないのですか?

  28. 28

    JavaのMath.round()がこの数値を処理できないのはなぜですか?

  29. 29

    Math.Round()を使用すると、常に下限が返されます

ホットタグ

アーカイブ