From 4f7bf1819fca887f2712807077f9e497c262e9ed Mon Sep 17 00:00:00 2001 From: don bright Date: Thu, 26 Jul 2012 20:49:58 -0500 Subject: add test for proper rounding of decimals in echo() 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 -- cgit v0.10.1 From 8e4bc5d598cd59994731f3f8cadd980e9cdad6c7 Mon Sep 17 00:00:00 2001 From: don bright Date: Wed, 1 Aug 2012 18:43:39 -0500 Subject: change value so that ECHO works more like old Qstring.sprintf 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(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 } -- cgit v0.10.1