diff --git a/prule/__init__.py b/prule/__init__.py
index af345adbc3cfe5c188ce73269a474e3212a1b821..32f6fd71554835ba04636d376b2d65ba8095faf3 100644
--- a/prule/__init__.py
+++ b/prule/__init__.py
@@ -1157,7 +1157,17 @@ def rule_evaluate(rule: dict, rinput: dict, job_meta: dict, check_requirements:
             log.print(log.debug, locals[rule["output_scalar"]])
             if isinstance(locals[rule["output_scalar"]], prule.builtin.Data):
                 log.print(log.debug, locals[rule["output_scalar"]].array)
-                output["scalar"] = float(locals[rule["output_scalar"]].array)
+                scalar_tmp = locals[rule["output_scalar"]].array
+                if hasattr(scalar_tmp, 'magnitude') == True:
+                    scalar_tmp = scalar_tmp.magnitude
+                if len(scalar_tmp) == 1:
+                    scalar_tmp = float(scalar_tmp)
+                else:
+                    error = True
+                    error_msg = "Error on converting scalar output value {} for rule {}: multiple values: {} in variable of type {}".format(rule["output_scalar"], rule["name"], len(scalar_tmp), type(scalar_tmp))
+                    output["errors"].append(error_msg)
+                    log.print(log.error, error_msg)
+                    output["scalar"] = None
             else:
                 try:
                     scalar_value = float(locals[rule["output_scalar"]])