| 10561 | } // namespace Detail |
| 10562 | |
| 10563 | template <typename T> std::string fpToString(T value, int precision) { |
| 10564 | if (std::isnan(value)) { |
| 10565 | return "nan"; |
| 10566 | } |
| 10567 | |
| 10568 | ReusableStringStream rss; |
| 10569 | rss << std::setprecision(precision) << std::fixed << value; |
| 10570 | std::string d = rss.str(); |
| 10571 | std::size_t i = d.find_last_not_of('0'); |
| 10572 | if (i != std::string::npos && i != d.size() - 1) { |
| 10573 | if (d[i] == '.') |
| 10574 | i++; |
| 10575 | d = d.substr(0, i + 1); |
| 10576 | } |
| 10577 | return d; |
| 10578 | } |
| 10579 | |
| 10580 | //// ======================================================= //// |
| 10581 | // |