2016-06-29 12 views
1

と小数点以下の文字がBigDecimal**演算子を使用すると、エラーはZero or negative argumentで失敗します。**演算子で計算できないBigDecimalがあります

私はこのようないくつかの類似した値がチェック:

-2 ** '0.3'.to_d 
# => -1.23114441 
2 ** '0.3'.to_d 
# => 1.23114441 
2 ** '0.3'.to_d 
# => 1.23114441 
-2 ** '0.3'.to_d 
# => -1.23114441 
2.to_d ** '0.3'.to_d 
# => 1.23114441 
-2.to_d ** '0.3'.to_d 
# => Math::DomainError: Zero or negative argument for log 
from (pry):111:in `**' 
2.to_d ** 3.to_d 
# => 8.0 
-2.to_d ** 3.to_d 
# => -8.0 

はなぜこのエラーが発生しているとどのように私はそれを修正することができますか?

答えて

4

私は今誤解していることを理解しています。

-2.0 ** 0.3(-2.0) ** 0.3と同じだと思いますが、-(2.0 ** 0.3)と同じです。

**-より強いことはわかりませんでした。

+0

おっと、それは*確かに*驚くべきことです。 –

関連する問題