Method: BigDecimal#ceil
- Defined in:
- bigdecimal.c
#ceil(*args) ⇒ Object
ceil(n)
Return the smallest integer greater than or equal to the value, as a BigDecimal.
BigDecimal(‘3.14159’).ceil #=> 4 BigDecimal(‘-9.1’).ceil #=> -9
If n is specified and positive, the fractional part of the result has no more than that many digits.
If n is specified and negative, at least that many digits to the left of the decimal point will be 0 in the result.
BigDecimal(‘3.14159’).ceil(3) #=> 3.142 BigDecimal(‘13345.234’).ceil(-2) #=> 13400.0
1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 |
# File 'bigdecimal.c', line 1872 static VALUE BigDecimal_ceil(int argc, VALUE *argv, VALUE self) { ENTER(5); Real *c, *a; int iLoc; VALUE vLoc; size_t mx, pl = VpSetPrecLimit(0); if (rb_scan_args(argc, argv, "01", &vLoc) == 0) { iLoc = 0; } else { Check_Type(vLoc, T_FIXNUM); iLoc = FIX2INT(vLoc); } GUARD_OBJ(a, GetVpValue(self, 1)); mx = a->Prec * (VpBaseFig() + 1); GUARD_OBJ(c, VpCreateRbObject(mx, "0")); VpSetPrecLimit(pl); VpActiveRound(c, a, VP_ROUND_CEIL, iLoc); if (argc == 0) { return BigDecimal_to_i(ToValue(c)); } return ToValue(c); } |