more mrb_flo_to_str fixes

- remove float check (take mrb_float instead of mrb_value)
- support -0.0
- fix range error if log10 is called when n == 0.0
- MSVC older than 2013: add signbit macro (for double)
This commit is contained in:
cremno
2014-02-17 12:37:39 +01:00
parent 57b7f6b619
commit 1838099e00
3 changed files with 18 additions and 13 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ extern "C" {
#define FIXABLE(f) (POSFIXABLE(f) && NEGFIXABLE(f))
mrb_value mrb_flo_to_fixnum(mrb_state *mrb, mrb_value val);
mrb_value mrb_flo_to_str(mrb_state *mrb, mrb_value flo);
mrb_value mrb_flo_to_str(mrb_state *mrb, mrb_float flo);
mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, int base);
+1
View File
@@ -59,6 +59,7 @@ typedef short mrb_sym;
# include <float.h>
# define isnan _isnan
# define isinf(n) (!_finite(n) && !_isnan(n))
# define signbit(n) (_copysign(1.0, (n)) < 0.0)
# define strtoll _strtoi64
# define strtof (float)strtod
# define PRId32 "I32d"