@@ -192,7 +192,10 @@ int netlib(T d, std::span<char>& buffer) {
192192
193193template <arithmetic_float T>
194194int snprintf (T d, std::span<char >& buffer) {
195- return std::snprintf (buffer.data (), buffer.size (), " %.17g" , d);
195+ if constexpr (std::is_same_v<T, float >)
196+ return std::snprintf (buffer.data (), buffer.size (), " %.9g" , d);
197+ else
198+ return std::snprintf (buffer.data (), buffer.size (), " %.17g" , d);
196199}
197200
198201// grisu2 is hardcoded for double.
@@ -291,7 +294,10 @@ int abseil(T d, std::span<char>& buffer) {
291294 // absl::StrAppend(&s, d);
292295 // std::copy(s.begin(), s.end(), buffer.begin());
293296 // return size(s);
294- return absl::SNPrintF (buffer.data (), buffer.size (), " %g" , d);
297+ if constexpr (std::is_same_v<T, float >)
298+ return absl::SNPrintF (buffer.data (), buffer.size (), " %.9g" , d);
299+ else
300+ return absl::SNPrintF (buffer.data (), buffer.size (), " %.17g" , d);
295301}
296302
297303template <arithmetic_float T>
@@ -310,7 +316,6 @@ int std_to_chars(T d, std::span<char>& buffer) {
310316#endif
311317}
312318
313-
314319template <arithmetic_float T>
315320std::array<BenchArgs<T>, Benchmarks::COUNT> initArgs (bool errol = false ) {
316321 std::array<BenchArgs<T>, Benchmarks::COUNT> args;
0 commit comments