diff --git a/spades.wdl b/spades.wdl
index 28fd8085d41f2052ca077f17dc59a35a05766755..f0feb573ec4fb71f09ec5cb42f62fe45c4ed7cb8 100644
--- a/spades.wdl
+++ b/spades.wdl
@@ -28,7 +28,8 @@ task spades {
     Float? covCutoff
     Int? phredOffset
     Int finalThreads = select_first([threads,1])
-    Float totalMemory = select_first([memoryGb, finalThreads * 16])
+    Float totalMemory = select_first([memoryGb, finalThreads * 16.0])
+    Int finalMemory = ceil(totalMemory)
     Int clusterMemory = ceil(totalMemory / finalThreads)
 
     command {
@@ -57,7 +58,7 @@ task spades {
         ${true="--disable-rr" false="" disableRepeatResolution } \
         ${"--dataset " + dataset } \
         ${"--threads " + finalThreads} \
-        ${"--memory " + ceil(totalMemory) } \
+        ${"--memory " + finalMemory } \
         ${"-k " + k } \
         ${"--cov-cutoff " + covCutoff } \
         ${"--phred-offset " + phredOffset }