diff --git a/src/common/print_fields.c b/src/common/print_fields.c
index e9c9a13077d2d8cde5056224c773b0d1b3068989..50f5696b94efe14ed72d3a896431b4fe40274ea4 100644
--- a/src/common/print_fields.c
+++ b/src/common/print_fields.c
@@ -148,7 +148,7 @@ extern void print_fields_int(print_field_t *field, int value, int last)
 {
 	int abs_len = abs(field->len);
 	/* (value == unset)  || (value == cleared) */
-	if ((value == NO_VAL) || (value == INFINITE)) {
+	if ((value == (int)NO_VAL) || (value == (int)INFINITE)) {
 		if (print_fields_parsable_print
 		   == PRINT_FIELDS_PARSABLE_NO_ENDING
 		   && last)
@@ -230,7 +230,7 @@ extern void print_fields_double(print_field_t *field, double value, int last)
 {
 	int abs_len = abs(field->len);
 	/* (value == unset)  || (value == cleared) */
-	if ((value == NO_VAL) || (value == INFINITE)) {
+	if ((value == (double)NO_VAL) || (value == (double)INFINITE)) {
 		if (print_fields_parsable_print
 		   == PRINT_FIELDS_PARSABLE_NO_ENDING
 		   && last)
@@ -258,7 +258,8 @@ extern void print_fields_long_double(
 {
 	int abs_len = abs(field->len);
 	/* (value == unset)  || (value == cleared) */
-	if ((value == NO_VAL) || (value == INFINITE)) {
+	if ((value == (long double)NO_VAL)
+	    || (value == (long double)INFINITE)) {
 		if (print_fields_parsable_print
 		   == PRINT_FIELDS_PARSABLE_NO_ENDING
 		   && last)