Method: BigDecimal#sub
- Defined in:
- bigdecimal.c
#sub(b, n) ⇒ Object
sub(value, digits) -> bigdecimal
Subtract the specified value.
e.g.
c = a.sub(b,n)
- digits
-
If specified and less than the number of significant digits of the result, the result is rounded to that number of digits, according to BigDecimal.mode.
1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 |
# File 'bigdecimal.c', line 1653
static VALUE
BigDecimal_sub2(VALUE self, VALUE b, VALUE n)
{
ENTER(2);
Real *cv;
SIGNED_VALUE mx = GetPrecisionInt(n);
if (mx == 0) return BigDecimal_sub(self, b);
else {
size_t pl = VpSetPrecLimit(0);
VALUE c = BigDecimal_sub(self, b);
VpSetPrecLimit(pl);
GUARD_OBJ(cv, GetVpValue(c, 1));
VpLeftRound(cv, VpGetRoundMode(), mx);
return ToValue(cv);
}
}
|