1
Когда я использую оператор **
с отрицательным BigDecimal
и десятичным 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
Почему эта ошибка происходит и как я могу это исправить?
Whoa, это * действительно * удивительно. –