@@ -168,7 +168,10 @@ int netlib(T d, std::span<char>& buffer) {
168168
169169template <arithmetic_float T>
170170int snprintf (T d, std::span<char >& buffer) {
171- return std::snprintf (buffer.data (), buffer.size (), " %.17g" , d);
171+ if constexpr (std::is_same_v<T, float >)
172+ return std::snprintf (buffer.data (), buffer.size (), " %.9g" , d);
173+ else
174+ return std::snprintf (buffer.data (), buffer.size (), " %.17g" , d);
172175}
173176
174177// grisu2 is hardcoded for double.
@@ -267,7 +270,10 @@ int abseil(T d, std::span<char>& buffer) {
267270 // absl::StrAppend(&s, d);
268271 // std::copy(s.begin(), s.end(), buffer.begin());
269272 // return size(s);
270- return absl::SNPrintF (buffer.data (), buffer.size (), " %g" , d);
273+ if constexpr (std::is_same_v<T, float >)
274+ return absl::SNPrintF (buffer.data (), buffer.size (), " %.9g" , d);
275+ else
276+ return absl::SNPrintF (buffer.data (), buffer.size (), " %.17g" , d);
271277}
272278
273279template <arithmetic_float T>
@@ -286,7 +292,6 @@ int std_to_chars(T d, std::span<char>& buffer) {
286292#endif
287293}
288294
289-
290295template <arithmetic_float T>
291296std::array<BenchArgs<T>, Benchmarks::COUNT> initArgs (bool errol = false ) {
292297 std::array<BenchArgs<T>, Benchmarks::COUNT> args;
0 commit comments