diff options
| author | Masaki Muranaka <[email protected]> | 2013-03-29 21:56:41 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2013-03-29 22:19:26 +0900 |
| commit | f82ae7653a53946fa14ed7a334b686265dc63dd3 (patch) | |
| tree | a954b6e7db8c914a078a9ae2447a5f8beebc7ff7 /src | |
| parent | 710f6252548f4a0eaf16a7b0d4d973a50e4520c0 (diff) | |
| download | mruby-f82ae7653a53946fa14ed7a334b686265dc63dd3.tar.gz mruby-f82ae7653a53946fa14ed7a334b686265dc63dd3.zip | |
Change the second argument of mrb_flo_to_str().
Export mrb_flo_to_str() as API.
Diffstat (limited to 'src')
| -rw-r--r-- | src/numeric.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/numeric.c b/src/numeric.c index 02a18c130..c24e84958 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -163,13 +163,19 @@ num_abs(mrb_state *mrb, mrb_value num) */ mrb_value -mrb_flo_to_str(mrb_state *mrb, mrb_float n, int max_digit) +mrb_flo_to_str(mrb_state *mrb, mrb_value flo, int max_digit) { mrb_value result; + mrb_float n; if (max_digit > 40) { mrb_raise(mrb, E_RANGE_ERROR, "Too large max_digit."); } + else if (!mrb_float_p(flo)) { + mrb_raise(mrb, E_TYPE_ERROR, "non float value"); + } + + n = mrb_float(flo); if (isnan(n)) { result = mrb_str_new(mrb, "NaN", 3); @@ -270,9 +276,9 @@ static mrb_value flo_to_s(mrb_state *mrb, mrb_value flt) { #ifdef MRB_USE_FLOAT - return mrb_flo_to_str(mrb, mrb_float(flt), 7); + return mrb_flo_to_str(mrb, flt, 7); #else - return mrb_flo_to_str(mrb, mrb_float(flt), 14); + return mrb_flo_to_str(mrb, flt, 14); #endif } |
