From 5fb6a6ae4447a647d403c30ce4a832f4452f77e6 Mon Sep 17 00:00:00 2001 From: hjw Date: Mon, 21 Nov 2022 15:51:51 +0800 Subject: [PATCH] Fix bug about number printing in PrintExpression --- src/basic.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/basic.cpp b/src/basic.cpp index 316f2f1..b3b6f88 100644 --- a/src/basic.cpp +++ b/src/basic.cpp @@ -249,7 +249,16 @@ string PrintExpression(const ast_ptr &expr, const size_t PRECISION) fprintf(stderr, "number: %f\n", number); #endif std::stringstream ss; - ss << std::setprecision(PRECISION) << number; + if(number - int(number) == 0) + { + ss.precision(1); + ss.setf(std::ios::fixed); + ss << number; + } + else + { + ss << std::setprecision(PRECISION) << number; + } return ss.str(); // better than to_string: 1 outputs as 1, 1.23456789 outputs as 1.23456789 // return std::to_string(number); // really not a good choice: 1 outputs as 1.000000, 1.23456789 outputs as 1.234567 } -- Gitee