summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/value.cc7
-rw-r--r--testdata/scad/misc/echo-tests.scad4
-rw-r--r--tests/regression/echotest/echo-tests-expected.txt1
3 files changed, 11 insertions, 1 deletions
diff --git a/src/value.cc b/src/value.cc
index 666062a..3b7f357 100644
--- a/src/value.cc
+++ b/src/value.cc
@@ -198,7 +198,12 @@ public:
}
return tmpstr;
#else
- return boost::lexical_cast<std::string>(op1);
+ // attempt to emulate Qt's QString.sprintf("%g"); from old OpenSCAD.
+ // see https://github.com/openscad/openscad/issues/158
+ std::stringstream tmp;
+ tmp.unsetf(std::ios::floatfield);
+ tmp << op1;
+ return tmp.str();
#endif
}
diff --git a/testdata/scad/misc/echo-tests.scad b/testdata/scad/misc/echo-tests.scad
index c42a67e..6753c61 100644
--- a/testdata/scad/misc/echo-tests.scad
+++ b/testdata/scad/misc/echo-tests.scad
@@ -12,3 +12,7 @@ echo(vec = [1,2,3]);
echo(range = [0:2]);
echo(str("string generated by str()"));
+
+// https://github.com/openscad/openscad/issues/158 rept by nop head
+// 0.8 should print 0.8 not 0.80000...004 (regardless of internal representation)
+echo(0.8);
diff --git a/tests/regression/echotest/echo-tests-expected.txt b/tests/regression/echotest/echo-tests-expected.txt
index ee9705f..d7ebe2f 100644
--- a/tests/regression/echotest/echo-tests-expected.txt
+++ b/tests/regression/echotest/echo-tests-expected.txt
@@ -7,3 +7,4 @@ ECHO: [1 : 2 : 10]
ECHO: vec = [1, 2, 3]
ECHO: range = [0 : 1 : 2]
ECHO: "string generated by str()"
+ECHO: 0.8
contact: Jan Huwald // Impressum