diff --git a/include/lsgrmController.txx b/include/lsgrmController.txx
index f44c324a2838bf178efa4cdad3ca546d2e081bdf..2d2ee411556b605d29a765d013234d3ed41fdb23 100644
--- a/include/lsgrmController.txx
+++ b/include/lsgrmController.txx
@@ -326,7 +326,7 @@ void Controller<TSegmenter>::GetAutomaticConfiguration()
   // Actually, there is tile margins. And the best scenario is to have
   // square tiles with margin = width/2, that is tiles 4x larger.
   // Hence the number of tiles maximizing memory use is 4x larger.
-  unsigned int minimumNumberOfTiles = std::ceil(4 * nbOfNodesInImage / ((float) maximumNumberOfNodesInMemory));
+  unsigned int minimumNumberOfTiles = std::ceil(4.0 * ((float) nbOfNodesInImage) / ((float) maximumNumberOfNodesInMemory));
   itkDebugMacro(<<"Minimum number of tiles is " << minimumNumberOfTiles);
 
   // In the following steps, we will optimize tiling layout, starting from a number