diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 20c24982f..d13ddf1bc 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -35,16 +35,18 @@ std::string to_string_nozero(double value, int32_t max_precision) { ss << std::fixed << std::setprecision(int(std::min(15 - long10, int(max_precision)))) << value; std::string ret = ss.str(); uint8_t nb_del = 0; - uint8_t idx_char; - for (idx_char = uint8_t(ss.tellp()) - 1; idx_char > 0; idx_char--) { - if (ret[idx_char] == '0') + if (ret.find('.') != std::string::npos) { + uint8_t idx_char; + for (idx_char = uint8_t(ss.tellp()) - 1; idx_char > 0; idx_char--) { + if (ret[idx_char] == '0') + nb_del++; + else + break; + } + // remove the '.' at the end of the int + if (idx_char > 0 && ret[idx_char] == '.') nb_del++; - else - break; } - // remove the '.' at the end of the int - if(idx_char > 0 && ret[idx_char] == '.') - nb_del++; if (nb_del > 0) return ret.substr(0, ret.size() - nb_del);