OCINumber *oci8_set_integer(OCINumber *result, VALUE self, OCIError *errhp) { OCINumber work; set_oci_number_from_num(&work, self, 1, errhp); chkerr(OCINumberTrunc(errhp, &work, 0, result)); return result; }
/* * call-seq: * onum.to_i -> integer * * Returns <i>onum</i> truncated to an <code>Integer</code>. */ static VALUE onum_to_i(VALUE self) { OCIError *errhp = oci8_errhp; OCINumber num; chkerr(OCINumberTrunc(errhp, _NUMBER(self), 0, &num)); return oci8_make_integer(&num, errhp); }
static void bind_integer_set(oci8_bind_t *obind, void *data, void **null_structp, VALUE val) { OCIError *errhp = oci8_errhp; OCINumber num; set_oci_number_from_num(&num, val, 1, errhp); oci_lc(OCINumberTrunc(errhp, &num, 0, (OCINumber*)data)); }
/* * call-seq: * onum.truncate -> integer * onum.truncate(decplace) -> oranumber * * Truncates <i>onum</i> to the <code>Integer</code> when no argument. * Truncates <i>onum</i> to a specified decimal place <i>decplace</i> when one argument. */ static VALUE onum_trunc(int argc, VALUE *argv, VALUE self) { OCIError *errhp = oci8_errhp; VALUE decplace; OCINumber r; rb_scan_args(argc, argv, "01", &decplace /* 0 */); chkerr(OCINumberTrunc(errhp, _NUMBER(self), NIL_P(decplace) ? 0 : NUM2INT(decplace), &r)); return oci8_make_ocinumber(&r, errhp); }