diff --git a/prule/__init__.py b/prule/__init__.py
index 2b1cc212be8a24b52b84e5aea0d899f2805964fc..c28811b444a52e18cdb8fd42f727f034549cde7b 100644
--- a/prule/__init__.py
+++ b/prule/__init__.py
@@ -377,6 +377,8 @@ def parse_slurminfo(info):
                 slurm["StdOut"] = l[10:].strip("\n")
             elif l.startswith("   StdIn="):
                 slurm["StdIn"] = l[9:].strip("\n")
+            elif l.startswith("   Reservation="):
+                slurm["StdIn"] = l[15:].strip("\n")
             else:
                 for t in l.strip().split(" "):
                     k,v = t.split("=")
@@ -390,15 +392,15 @@ def parse_slurminfo(info):
 def parse_slurm_size(size):
     num = 0
     if size.endswith("K"):
-        num = int(size[:-1]) * 1024
+        num = float(size[:-1]) * 1024
     elif size.endswith("M"):
-        num = int(size[:-1]) * 1024 * 1024
+        num = float(size[:-1]) * 1024 * 1024
     elif size.endswith("G"):
-        num = int(size[:-1]) * 1024 * 1024 * 1024
+        num = float(size[:-1]) * 1024 * 1024 * 1024
     elif size.endswith("T"):
-        num = int(size[:-1]) * 1024 * 1024 * 1024 * 1024
+        num = float(size[:-1]) * 1024 * 1024 * 1024 * 1024
     else: # default is MiB
-        num = int(size) * 1024 * 1024
+        num = float(size) * 1024 * 1024
     return num
 
 # Prepare variables available for rule evaluation.