summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-05-26 11:17:47 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-05-26 17:29:18 +0900
commitc019d8d34d2db5de218802d923e6d0197a2ffca0 (patch)
treef0b18c2c7ab657f7f6bf4a324048d59cb41ecee7
parent05cc3a8d9958c618aafc4b01548a85834f23dd6d (diff)
downloadmruby-c019d8d34d2db5de218802d923e6d0197a2ffca0.tar.gz
mruby-c019d8d34d2db5de218802d923e6d0197a2ffca0.zip
fmt_fp.c: move mruby specific `mrb_float_to_str` to `numeric.c`
-rw-r--r--src/fmt_fp.c24
-rw-r--r--src/numeric.c24
2 files changed, 24 insertions, 24 deletions
diff --git a/src/fmt_fp.c b/src/fmt_fp.c
index 8a156b3d9..6f4828d99 100644
--- a/src/fmt_fp.c
+++ b/src/fmt_fp.c
@@ -361,28 +361,4 @@ mrb_format_float(mrb_float f, char *buf, size_t buf_size, char fmt, int prec, ch
return s - buf;
}
-
-MRB_API mrb_value
-mrb_float_to_str(mrb_state *mrb, mrb_value flo)
-{
- char buf[25];
-#ifdef MRB_USE_FLOAT32
- const int prec = 7;
-#else
- const int prec = 15;
-#endif
-
- mrb_format_float(mrb_float(flo), buf, sizeof(buf), 'g', prec, '\0');
- for (char *p = buf; *p; p++) {
- if (*p == '.') goto exit;
- if (*p == 'e') {
- memmove(p+2, p, strlen(p)+1);
- memcpy(p, ".0", 2);
- goto exit;
- }
- }
- strcat(buf, ".0");
- exit:
- return mrb_str_new_cstr(mrb, buf);
-}
#endif
diff --git a/src/numeric.c b/src/numeric.c
index 24160fb77..fe9995bd4 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -277,6 +277,30 @@ flo_div(mrb_state *mrb, mrb_value x)
return mrb_float_value(mrb, a);
}
+MRB_API mrb_value
+mrb_float_to_str(mrb_state *mrb, mrb_value flo)
+{
+ char buf[25];
+#ifdef MRB_USE_FLOAT32
+ const int prec = 7;
+#else
+ const int prec = 15;
+#endif
+
+ mrb_format_float(mrb_float(flo), buf, sizeof(buf), 'g', prec, '\0');
+ for (char *p = buf; *p; p++) {
+ if (*p == '.') goto exit;
+ if (*p == 'e') {
+ memmove(p+2, p, strlen(p)+1);
+ memcpy(p, ".0", 2);
+ goto exit;
+ }
+ }
+ strcat(buf, ".0");
+ exit:
+ return mrb_str_new_cstr(mrb, buf);
+}
+
/* 15.2.9.3.16(x) */
/*
* call-seq: