4
exponent(0.0)
は、ドメインエラーを起こします。なぜですか? 0.0
の指数が1.0
の指数と同じである必要があります。ゼロはIntなので、なぜそれがドメイン外にあるのか混乱しています(またはバグですか?)しかし、エラーが設定されているのでここでは意識的な選択と思われる)。指数(0.0)がなぜDomainErrorですか?
exponent(0.0)
は、ドメインエラーを起こします。なぜですか? 0.0
の指数が1.0
の指数と同じである必要があります。ゼロはIntなので、なぜそれがドメイン外にあるのか混乱しています(またはバグですか?)しかし、エラーが設定されているのでここでは意識的な選択と思われる)。指数(0.0)がなぜDomainErrorですか?
は見ての値で遊ぶことができます:
julia> exponent(2.0)
1 --- 2^1 = 2
julia> exponent(4.0)
2 --- 2^2 = 4
julia> exponent(1.0)
0 --- 2^0 = 1
julia> exponent(0.5)
-1 --- 2^-1 = 0.5
julia> exponent(0.25)
-2 --- 2^-2 = 0.25
.
.
.
だから意味:
julia> exponent(0.0)
-∞ --- 2^-∞ = 0.0
負の無限大は、ドメイン・エラーの原因となっています。
ああ、私の脳は少し働いていなかった。良い説明。 –
しかし、 '2.0 ^( - 1024)== 0.0 'なので、間違いなく黙ってオーバーフローしてしまうので、間違いなく' expoenent(0.0)== -1024'とするのが妥当です。これを特に考慮すると、Float64の実際の指数ビット表現(IEEE754標準による)に忠実です。ちょうどそれがもっともらしいと言っているだけです。現在の行動は数学的真理に近い。 –
しかし、 'exponent(0.0)== -1024'を使うことは、' exponent(nextfloat(0.0))== -1074'という事実と矛盾します。 – DNF