diff --git a/scripts/conll18_ud_eval.py b/scripts/conll18_ud_eval.py
index 813188c9f6ea230443c387ef89ce4bc91975da5a..2b760bdf32bd516b4536f60f8bab6febdff49417 100755
--- a/scripts/conll18_ud_eval.py
+++ b/scripts/conll18_ud_eval.py
@@ -760,12 +760,15 @@ def main() :
           evaluation[metric][0].aligned_total or (evaluation[metric][0].correct if metric == "Words" else "")
         ))
       else :
-        print("{:{}}|{:10.2f} |{:10.2f} |{:10.2f} |{}".format(
+        precision = ("{:10.2f}" if abs(evaluation[metric][0].precision) > 1.0 else "{:10.4f}").format(evaluation[metric][0].precision)
+        recall = ("{:10.2f}" if abs(evaluation[metric][0].recall) > 1.0 else "{:10.4f}").format(evaluation[metric][0].recall)
+        f1 = ("{:10.2f}" if abs(evaluation[metric][0].f1) > 1.0 else "{:10.4f}").format(evaluation[metric][0].f1)
+        print("{:{}}|{} |{} |{} |{}".format(
           metric,
           maxColNameSize,
-          evaluation[metric][0].precision,
-          evaluation[metric][0].recall,
-          evaluation[metric][0].f1,
+          precision,
+          recall,
+          f1,
           "{:10.2f}".format(evaluation[metric][0].aligned_accuracy) if evaluation[metric][0].aligned_accuracy is not None else ""
         ))