diff --git a/dumux/io/container.hh b/dumux/io/container.hh
index 65ddba2b221ce8406441ca0716618bc42eaca8da..3c5a04a9157f10a09e6af3ba93c3ecb30b570a06 100644
--- a/dumux/io/container.hh
+++ b/dumux/io/container.hh
@@ -28,6 +28,8 @@
 #define DUMUX_IO_CONTAINER_HH
 
 #include <iostream>
+#include <ios>
+#include <iomanip>
 #include <fstream>
 #include <iterator>
 
@@ -43,9 +45,11 @@ namespace Dumux {
  */
 template<typename Container>
 void writeContainerToFile(const Container& v,
-                          const std::string& filename)
+                          const std::string& filename,
+                          int floatPrecision = 6)
 {
     std::ofstream outfile(filename, std::ios::out);
+    outfile << std::scientific << std::setprecision(floatPrecision);
     std::ostream_iterator<typename Container::value_type> it(outfile, "\n");
     std::copy(v.begin(),v.end(), it);
 }
diff --git a/test/io/container/test_container_io.cc b/test/io/container/test_container_io.cc
index 36f0bd49861366af7e08a62ac3faa48ed2820860..81bad7eab2b0325b5b76615fb53f6aeb503242f0 100644
--- a/test/io/container/test_container_io.cc
+++ b/test/io/container/test_container_io.cc
@@ -38,9 +38,9 @@
 namespace Dumux {
 
 template<typename T>
-bool testContainerIO(const T& c0)
+bool testContainerIO(const T& c0, int floatPrecision = 6)
 {
-    writeContainerToFile(c0, "container.txt");
+    writeContainerToFile(c0, "container.txt", floatPrecision);
     auto c1 = readFileToContainer<T>("container.txt");
     return std::equal(c0.begin(), c0.end(), c1.begin());
 }
@@ -80,6 +80,11 @@ int main()
     passed = passed && Dumux::testContainerIO<std::deque<double>>(doublei);
     if (!passed) return 1;
 
+    auto doublepreci = {1.23456789123456, 1.23456789123456, 9.87654321987654};
+    passed = passed && Dumux::testContainerIO<std::vector<double>>(doublepreci, 15);
+    passed = passed && !Dumux::testContainerIO<std::vector<double>>(doublepreci, 7);
+    if (!passed) return 1;
+
     auto inti = {5, 6, 7, 5, 2, 8};
     passed = passed && Dumux::testContainerIO<std::vector<int>>(inti);
     passed = passed && Dumux::testContainerIO<std::list<int>>(inti);