diff --git a/src/wren_core.c b/src/wren_core.c index d9df032b..6909de96 100644 --- a/src/wren_core.c +++ b/src/wren_core.c @@ -878,12 +878,6 @@ DEF_PRIMITIVE(num_cos) RETURN_NUM(cos(AS_NUM(args[0]))); } -DEF_PRIMITIVE(num_decimal) -{ - double value = AS_NUM(args[0]); - RETURN_NUM(value - (int32_t)value); -} - DEF_PRIMITIVE(num_deg) { RETURN_NUM(floor(AS_NUM(args[0]) * 57.2957795130823208768)); @@ -901,6 +895,13 @@ DEF_PRIMITIVE(num_floor) RETURN_NUM(floor(AS_NUM(args[0]))); } +DEF_PRIMITIVE(num_fraction) +{ + double integer; + double fractional = modf(AS_NUM(args[0]) , &integer); + RETURN_NUM(fractional); +} + DEF_PRIMITIVE(num_isNan) { RETURN_BOOL(isnan(AS_NUM(args[0]))); @@ -1557,10 +1558,10 @@ void wrenInitializeCore(WrenVM* vm) PRIMITIVE(vm->numClass, "abs", num_abs); PRIMITIVE(vm->numClass, "ceil", num_ceil); PRIMITIVE(vm->numClass, "cos", num_cos); - PRIMITIVE(vm->numClass, "decimal", num_decimal); PRIMITIVE(vm->numClass, "deg", num_deg); PRIMITIVE(vm->numClass, "div(_)", num_div); PRIMITIVE(vm->numClass, "floor", num_floor); + PRIMITIVE(vm->numClass, "fraction", num_fraction); PRIMITIVE(vm->numClass, "isNan", num_isNan); PRIMITIVE(vm->numClass, "rad", num_rad); PRIMITIVE(vm->numClass, "sign", num_sign);