Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Integer#**
(::Integer) -> ::Numeric
(::Float) -> ::Numeric
(::Rational) -> ::Numeric
(::Complex) -> ::Complex
self ** numeric → numeric_result
numeric.c
View on GitHub ↗
VALUE
rb_int_pow(VALUE x, VALUE y)
{
if (FIXNUM_P(x)) {
return fix_pow(x, y);
}
else if (RB_BIGNUM_TYPE_P(x)) {
return rb_big_pow(x, y);
}
return Qnil;
}
Raises self to the power of numeric:
Example
2 ** 3 # => 8 2 ** -3 # => (1/8) -2 ** 3 # => -8 -2 ** -3 # => (-1/8) 2 ** 3.3 # => 9.849155306759329 2 ** Rational(3, 1) # => (8/1) 2 ** Complex(3, 0) # => (8+0i)
Ruby version changes
-
3.4
-
Integer#**used to returnFloat::INFINITYwhen the return value is large, but now returns anInteger. If the return value is extremely large, it raises an exception. [Feature #20811]
-