aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-02-26 20:33:02 +0800
committercrupest <crupest@outlook.com>2022-02-26 20:33:02 +0800
commit8da596f7b5fdbcf11fbda4aa66efc87a219f58ae (patch)
treed229a293f4cc424f23648c1f22de2cf268814870 /src/common
parent673f1939beb1b477a23d9641a07a2e05fff903b4 (diff)
downloadcru-8da596f7b5fdbcf11fbda4aa66efc87a219f58ae.tar.gz
cru-8da596f7b5fdbcf11fbda4aa66efc87a219f58ae.tar.bz2
cru-8da596f7b5fdbcf11fbda4aa66efc87a219f58ae.zip
...
Diffstat (limited to 'src/common')
-rw-r--r--src/common/Format.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/common/Format.cpp b/src/common/Format.cpp
index d58c90b7..0ae744fc 100644
--- a/src/common/Format.cpp
+++ b/src/common/Format.cpp
@@ -1,6 +1,25 @@
#include "cru/common/Format.h"
+#include <double-conversion/utils.h>
namespace cru {
+
+double_conversion::DoubleToStringConverter kDefaultDoubleToStringConverter(
+ 0, "infinity", "nan", 'e', -6, 21, 6, 1);
+
+String ToString(float value, StringView option) {
+ char buffer[50];
+ double_conversion::StringBuilder string_builder(buffer, sizeof(buffer));
+ kDefaultDoubleToStringConverter.ToShortestSingle(value, &string_builder);
+ return String::FromUtf8(std::string_view(buffer, string_builder.position()));
+}
+
+String ToString(double value, StringView option) {
+ char buffer[50];
+ double_conversion::StringBuilder string_builder(buffer, sizeof(buffer));
+ kDefaultDoubleToStringConverter.ToShortestSingle(value, &string_builder);
+ return String::FromUtf8(std::string_view(buffer, string_builder.position()));
+}
+
namespace details {
FormatToken ParsePlaceHolder(String place_holder_string) {
if (place_holder_string.empty()) {