diff --git a/dumux/nonlinear/newtonsolver.hh b/dumux/nonlinear/newtonsolver.hh
index 49bd6d4adc5bcb86a324f9761d472d837f3596a8..0a5e1a3a02caf5690df1c2f6c84afce3fc3327ce 100644
--- a/dumux/nonlinear/newtonsolver.hh
+++ b/dumux/nonlinear/newtonsolver.hh
@@ -486,13 +486,23 @@ public:
 
         if (verbose_)
         {
-            std::cout << "\rNewton iteration " << numSteps_ << " done";
+            auto width = std::to_string(maxSteps_).size();
+            std::cout << "\rNewton iteration " << std::setw(width) << numSteps_ << " done";
+
+            auto formatFlags = std::cout.flags();
+            auto prec = std::cout.precision();
+            std::cout << std::scientific << std::setprecision(3);
+
             if (enableShiftCriterion_)
                 std::cout << ", maximum relative shift = " << shift_;
             if (enableResidualCriterion_ && enableAbsoluteResidualCriterion_)
                 std::cout << ", residual = " << residualNorm_;
             else if (enableResidualCriterion_)
                 std::cout << ", residual reduction = " << reduction_;
+
+            std::cout.flags(formatFlags);
+            std::cout.precision(prec);
+
             std::cout << endIterMsgStream_.str() << "\n";
         }
         endIterMsgStream_.str("");