Format floats like doubles when printing - but add ‘f’ suffix (a lá #291)
diff --git a/include/internal/catch_tostring.h b/include/internal/catch_tostring.h
index 7268d15..4b46883 100644
--- a/include/internal/catch_tostring.h
+++ b/include/internal/catch_tostring.h
@@ -158,6 +158,7 @@
 std::string toString( unsigned long value );
 std::string toString( unsigned int value );
 std::string toString( const double value );
+std::string toString( const float value );
 std::string toString( bool value );
 std::string toString( char value );
 std::string toString( signed char value );
diff --git a/include/internal/catch_tostring.hpp b/include/internal/catch_tostring.hpp
index b957dd5..825ceb5 100644
--- a/include/internal/catch_tostring.hpp
+++ b/include/internal/catch_tostring.hpp
@@ -103,9 +103,10 @@
     return toString( static_cast<unsigned long>( value ) );
 }
 
-std::string toString( const double value ) {
+template<typename T>
+std::string fpToString( T value, int precision ) {
     std::ostringstream oss;
-    oss << std::setprecision( 10 )
+    oss << std::setprecision( precision )
         << std::fixed
         << value;
     std::string d = oss.str();
@@ -118,6 +119,13 @@
     return d;
 }
 
+std::string toString( const double value ) {
+    return fpToString( value, 10 );
+}
+std::string toString( const float value ) {
+    return fpToString( value, 5 ) + "f";
+}
+
 std::string toString( bool value ) {
     return value ? "true" : "false";
 }
diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt
index f47ee3d..58a4c7e 100644
--- a/projects/SelfTest/Baselines/console.std.approved.txt
+++ b/projects/SelfTest/Baselines/console.std.approved.txt
@@ -49,22 +49,22 @@
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 9.11f ) )
 with expansion:
-  9.1 == Approx( 9.1099996567 )
+  9.1f == Approx( 9.1099996567 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 9.0f ) )
 with expansion:
-  9.1 == Approx( 9.0 )
+  9.1f == Approx( 9.0 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 1 ) )
 with expansion:
-  9.1 == Approx( 1.0 )
+  9.1f == Approx( 1.0 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 0 ) )
 with expansion:
-  9.1 == Approx( 0.0 )
+  9.1f == Approx( 0.0 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.double_pi == Approx( 3.1415 ) )
@@ -110,7 +110,7 @@
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one != Approx( 9.1f ) )
 with expansion:
-  9.1 != Approx( 9.1000003815 )
+  9.1f != Approx( 9.1000003815 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.double_pi != Approx( 3.1415926535 ) )
@@ -176,17 +176,17 @@
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one < 9 )
 with expansion:
-  9.1 < 9
+  9.1f < 9
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one > 10 )
 with expansion:
-  9.1 > 10
+  9.1f > 10
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one > 9.2 )
 with expansion:
-  9.1 > 9.2
+  9.1f > 9.2
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.str_hello > "hello" )
diff --git a/projects/SelfTest/Baselines/console.sw.approved.txt b/projects/SelfTest/Baselines/console.sw.approved.txt
index 1b38d3d..ae011b0 100644
--- a/projects/SelfTest/Baselines/console.sw.approved.txt
+++ b/projects/SelfTest/Baselines/console.sw.approved.txt
@@ -73,13 +73,13 @@
 PASSED:
   REQUIRE( 1.23f == Approx( 1.23f ) )
 with expansion:
-  1.23 == Approx( 1.2300000191 )
+  1.23f == Approx( 1.2300000191 )
 
 ApproxTests.cpp:<line number>:
 PASSED:
   REQUIRE( 0.0f == Approx( 0.0f ) )
 with expansion:
-  0 == Approx( 0.0 )
+  0.0f == Approx( 0.0 )
 
 -------------------------------------------------------------------------------
 Approximate comparisons with ints
@@ -109,7 +109,7 @@
 PASSED:
   REQUIRE( 1.0f == Approx( 1 ) )
 with expansion:
-  1 == Approx( 1.0 )
+  1.0f == Approx( 1.0 )
 
 ApproxTests.cpp:<line number>:
 PASSED:
@@ -127,7 +127,7 @@
 PASSED:
   REQUIRE( 1.234f == Approx( dMedium ) )
 with expansion:
-  1.234 == Approx( 1.234 )
+  1.234f == Approx( 1.234 )
 
 ApproxTests.cpp:<line number>:
 PASSED:
@@ -269,7 +269,7 @@
 PASSED:
   REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
 with expansion:
-  9.1 == Approx( 9.1000003815 )
+  9.1f == Approx( 9.1000003815 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
@@ -325,22 +325,22 @@
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 9.11f ) )
 with expansion:
-  9.1 == Approx( 9.1099996567 )
+  9.1f == Approx( 9.1099996567 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 9.0f ) )
 with expansion:
-  9.1 == Approx( 9.0 )
+  9.1f == Approx( 9.0 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 1 ) )
 with expansion:
-  9.1 == Approx( 1.0 )
+  9.1f == Approx( 1.0 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one == Approx( 0 ) )
 with expansion:
-  9.1 == Approx( 0.0 )
+  9.1f == Approx( 0.0 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.double_pi == Approx( 3.1415 ) )
@@ -394,25 +394,25 @@
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
 with expansion:
-  9.1 != Approx( 9.1099996567 )
+  9.1f != Approx( 9.1099996567 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
 with expansion:
-  9.1 != Approx( 9.0 )
+  9.1f != Approx( 9.0 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 1 ) )
 with expansion:
-  9.1 != Approx( 1.0 )
+  9.1f != Approx( 1.0 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 0 ) )
 with expansion:
-  9.1 != Approx( 0.0 )
+  9.1f != Approx( 0.0 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
@@ -458,7 +458,7 @@
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one != Approx( 9.1f ) )
 with expansion:
-  9.1 != Approx( 9.1000003815 )
+  9.1f != Approx( 9.1000003815 )
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.double_pi != Approx( 3.1415926535 ) )
@@ -533,19 +533,19 @@
 PASSED:
   REQUIRE( data.float_nine_point_one > 9 )
 with expansion:
-  9.1 > 9
+  9.1f > 9
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one < 10 )
 with expansion:
-  9.1 < 10
+  9.1f < 10
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one < 9.2 )
 with expansion:
-  9.1 < 9.2
+  9.1f < 9.2
 
 ConditionTests.cpp:<line number>:
 PASSED:
@@ -632,17 +632,17 @@
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one < 9 )
 with expansion:
-  9.1 < 9
+  9.1f < 9
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one > 10 )
 with expansion:
-  9.1 > 10
+  9.1f > 10
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one > 9.2 )
 with expansion:
-  9.1 > 9.2
+  9.1f > 9.2
 
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.str_hello > "hello" )
diff --git a/projects/SelfTest/Baselines/console.swa4.approved.txt b/projects/SelfTest/Baselines/console.swa4.approved.txt
index 418af3e..3432b80 100644
--- a/projects/SelfTest/Baselines/console.swa4.approved.txt
+++ b/projects/SelfTest/Baselines/console.swa4.approved.txt
@@ -73,13 +73,13 @@
 PASSED:
   REQUIRE( 1.23f == Approx( 1.23f ) )
 with expansion:
-  1.23 == Approx( 1.2300000191 )
+  1.23f == Approx( 1.2300000191 )
 
 ApproxTests.cpp:<line number>:
 PASSED:
   REQUIRE( 0.0f == Approx( 0.0f ) )
 with expansion:
-  0 == Approx( 0.0 )
+  0.0f == Approx( 0.0 )
 
 -------------------------------------------------------------------------------
 Approximate comparisons with ints
@@ -109,7 +109,7 @@
 PASSED:
   REQUIRE( 1.0f == Approx( 1 ) )
 with expansion:
-  1 == Approx( 1.0 )
+  1.0f == Approx( 1.0 )
 
 ApproxTests.cpp:<line number>:
 PASSED:
@@ -127,7 +127,7 @@
 PASSED:
   REQUIRE( 1.234f == Approx( dMedium ) )
 with expansion:
-  1.234 == Approx( 1.234 )
+  1.234f == Approx( 1.234 )
 
 ApproxTests.cpp:<line number>:
 PASSED:
@@ -269,7 +269,7 @@
 PASSED:
   REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
 with expansion:
-  9.1 == Approx( 9.1000003815 )
+  9.1f == Approx( 9.1000003815 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
@@ -339,25 +339,25 @@
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
 with expansion:
-  9.1 != Approx( 9.1099996567 )
+  9.1f != Approx( 9.1099996567 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
 with expansion:
-  9.1 != Approx( 9.0 )
+  9.1f != Approx( 9.0 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 1 ) )
 with expansion:
-  9.1 != Approx( 1.0 )
+  9.1f != Approx( 1.0 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
   REQUIRE( data.float_nine_point_one != Approx( 0 ) )
 with expansion:
-  9.1 != Approx( 0.0 )
+  9.1f != Approx( 0.0 )
 
 ConditionTests.cpp:<line number>:
 PASSED:
@@ -403,7 +403,7 @@
 ConditionTests.cpp:<line number>: FAILED:
   CHECK( data.float_nine_point_one != Approx( 9.1f ) )
 with expansion:
-  9.1 != Approx( 9.1000003815 )
+  9.1f != Approx( 9.1000003815 )
 
 ===============================================================================
 test cases: 11 passed |  3 failed |  1 failed as expected | total: 15
diff --git a/projects/SelfTest/Baselines/junit.sw.approved.txt b/projects/SelfTest/Baselines/junit.sw.approved.txt
index 5ccdb50..b6271d0 100644
--- a/projects/SelfTest/Baselines/junit.sw.approved.txt
+++ b/projects/SelfTest/Baselines/junit.sw.approved.txt
@@ -30,16 +30,16 @@
       <failure message="7 == 0" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 == Approx( 9.1099996567 )" type="CHECK">
+      <failure message="9.1f == Approx( 9.1099996567 )" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 == Approx( 9.0 )" type="CHECK">
+      <failure message="9.1f == Approx( 9.0 )" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 == Approx( 1.0 )" type="CHECK">
+      <failure message="9.1f == Approx( 1.0 )" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 == Approx( 0.0 )" type="CHECK">
+      <failure message="9.1f == Approx( 0.0 )" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
       <failure message="3.1415926535 == Approx( 3.1415 )" type="CHECK">
@@ -66,7 +66,7 @@
       <failure message="7 != 7" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 != Approx( 9.1000003815 )" type="CHECK">
+      <failure message="9.1f != Approx( 9.1000003815 )" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
       <failure message="3.1415926535 != Approx( 3.1415926535 )" type="CHECK">
@@ -105,13 +105,13 @@
       <failure message="7 &lt;= 6" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 &lt; 9" type="CHECK">
+      <failure message="9.1f &lt; 9" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 > 10" type="CHECK">
+      <failure message="9.1f > 10" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
-      <failure message="9.1 > 9.2" type="CHECK">
+      <failure message="9.1f > 9.2" type="CHECK">
 ConditionTests.cpp:<line number>
       </failure>
       <failure message="&quot;hello&quot; > &quot;hello&quot;" type="CHECK">
diff --git a/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt
index 8c84d91..7de2eab 100644
--- a/projects/SelfTest/Baselines/xml.sw.approved.txt
+++ b/projects/SelfTest/Baselines/xml.sw.approved.txt
@@ -76,7 +76,7 @@
           1.23f == Approx( 1.23f )
         </Original>
         <Expanded>
-          1.23 == Approx( 1.2300000191 )
+          1.23f == Approx( 1.2300000191 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@@ -84,7 +84,7 @@
           0.0f == Approx( 0.0f )
         </Original>
         <Expanded>
-          0 == Approx( 0.0 )
+          0.0f == Approx( 0.0 )
         </Expanded>
       </Expression>
       <OverallResult success="true"/>
@@ -114,7 +114,7 @@
           1.0f == Approx( 1 )
         </Original>
         <Expanded>
-          1 == Approx( 1.0 )
+          1.0f == Approx( 1.0 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@@ -138,7 +138,7 @@
           1.234f == Approx( dMedium )
         </Original>
         <Expanded>
-          1.234 == Approx( 1.234 )
+          1.234f == Approx( 1.234 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ApproxTests.cpp" >
@@ -295,7 +295,7 @@
           data.float_nine_point_one == Approx( 9.1f )
         </Original>
         <Expanded>
-          9.1 == Approx( 9.1000003815 )
+          9.1f == Approx( 9.1000003815 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -370,7 +370,7 @@
           data.float_nine_point_one == Approx( 9.11f )
         </Original>
         <Expanded>
-          9.1 == Approx( 9.1099996567 )
+          9.1f == Approx( 9.1099996567 )
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -378,7 +378,7 @@
           data.float_nine_point_one == Approx( 9.0f )
         </Original>
         <Expanded>
-          9.1 == Approx( 9.0 )
+          9.1f == Approx( 9.0 )
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -386,7 +386,7 @@
           data.float_nine_point_one == Approx( 1 )
         </Original>
         <Expanded>
-          9.1 == Approx( 1.0 )
+          9.1f == Approx( 1.0 )
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -394,7 +394,7 @@
           data.float_nine_point_one == Approx( 0 )
         </Original>
         <Expanded>
-          9.1 == Approx( 0.0 )
+          9.1f == Approx( 0.0 )
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -469,7 +469,7 @@
           data.float_nine_point_one != Approx( 9.11f )
         </Original>
         <Expanded>
-          9.1 != Approx( 9.1099996567 )
+          9.1f != Approx( 9.1099996567 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -477,7 +477,7 @@
           data.float_nine_point_one != Approx( 9.0f )
         </Original>
         <Expanded>
-          9.1 != Approx( 9.0 )
+          9.1f != Approx( 9.0 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -485,7 +485,7 @@
           data.float_nine_point_one != Approx( 1 )
         </Original>
         <Expanded>
-          9.1 != Approx( 1.0 )
+          9.1f != Approx( 1.0 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -493,7 +493,7 @@
           data.float_nine_point_one != Approx( 0 )
         </Original>
         <Expanded>
-          9.1 != Approx( 0.0 )
+          9.1f != Approx( 0.0 )
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -552,7 +552,7 @@
           data.float_nine_point_one != Approx( 9.1f )
         </Original>
         <Expanded>
-          9.1 != Approx( 9.1000003815 )
+          9.1f != Approx( 9.1000003815 )
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -651,7 +651,7 @@
           data.float_nine_point_one > 9
         </Original>
         <Expanded>
-          9.1 > 9
+          9.1f > 9
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -659,7 +659,7 @@
           data.float_nine_point_one &lt; 10
         </Original>
         <Expanded>
-          9.1 &lt; 10
+          9.1f &lt; 10
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -667,7 +667,7 @@
           data.float_nine_point_one &lt; 9.2
         </Original>
         <Expanded>
-          9.1 &lt; 9.2
+          9.1f &lt; 9.2
         </Expanded>
       </Expression>
       <Expression success="true" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -790,7 +790,7 @@
           data.float_nine_point_one &lt; 9
         </Original>
         <Expanded>
-          9.1 &lt; 9
+          9.1f &lt; 9
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -798,7 +798,7 @@
           data.float_nine_point_one > 10
         </Original>
         <Expanded>
-          9.1 > 10
+          9.1f > 10
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >
@@ -806,7 +806,7 @@
           data.float_nine_point_one > 9.2
         </Original>
         <Expanded>
-          9.1 > 9.2
+          9.1f > 9.2
         </Expanded>
       </Expression>
       <Expression success="false" filename="/Users/philnash/Dev/OSS/Catch/projects/SelfTest/ConditionTests.cpp" >