diff --git a/internal/numeric.h b/internal/numeric.h index 440bef1671..19069cb3bc 100644 --- a/internal/numeric.h +++ b/internal/numeric.h @@ -35,7 +35,7 @@ enum ruby_num_rounding_mode { RUBY_NUM_ROUND_DEFAULT = ROUND_DEFAULT, }; -#if SIZEOF_DOUBLE < SIZEOF_VALUE +#if SIZEOF_DOUBLE <= SIZEOF_VALUE typedef double rb_float_value_type; #else typedef struct { @@ -218,7 +218,7 @@ rb_float_flonum_value(VALUE v) static inline double rb_float_noflonum_value(VALUE v) { -#if SIZEOF_DOUBLE < SIZEOF_VALUE +#if SIZEOF_DOUBLE <= SIZEOF_VALUE return RFLOAT(v)->float_value; #else union { diff --git a/numeric.c b/numeric.c index 3ee98343a7..715f11c631 100644 --- a/numeric.c +++ b/numeric.c @@ -951,7 +951,7 @@ rb_float_new_in_heap(double d) { NEWOBJ_OF(flt, struct RFloat, rb_cFloat, T_FLOAT | (RGENGC_WB_PROTECTED_FLOAT ? FL_WB_PROTECTED : 0)); -#if SIZEOF_DOUBLE < SIZEOF_VALUE +#if SIZEOF_DOUBLE <= SIZEOF_VALUE flt->float_value = d; #else union {