diff --git a/src/cppbor.cpp b/src/cppbor.cpp
index bdb5559..1877c67 100644
--- a/src/cppbor.cpp
+++ b/src/cppbor.cpp
@@ -245,23 +245,23 @@
                 case NULL_T:
                     out.append("null");
                     break;
-#if defined(__STDC_IEC_559__) || FLT_MANT_DIG == 24 || __FLT_MANT_DIG__ == 24
                 case FLOAT:
+#if defined(__STDC_IEC_559__) || FLT_MANT_DIG == 24 || __FLT_MANT_DIG__ == 24
                     snprintf(buf, sizeof(buf), "%f", item->asSimple()->asFloat()->value());
                     out.append(buf);
                     break;
+#else
 #ifndef __TRUSTY__
                     LOG(ERROR) << "float not supported for this platform.";
-#endif  // __TRUSTY__
+#endif // __TRUSTY__
                     return false;
-#endif  // __STDC_IEC_559__ || FLT_MANT_DIG == 24 || __FLT_MANT_DIG__ == 24
-#if defined(__STDC_IEC_559__) || DBL_MANT_DIG == 53 || __DBL_MANT_DIG__ == 53
+#endif // __STDC_IEC_559__ || FLT_MANT_DIG == 24 || __FLT_MANT_DIG__ == 24
                 case DOUBLE:
+#if defined(__STDC_IEC_559__) || DBL_MANT_DIG == 53 || __DBL_MANT_DIG__ == 53
                     snprintf(buf, sizeof(buf), "%f", item->asSimple()->asDouble()->value());
                     out.append(buf);
                     break;
 #else
-                case DOUBLE:
 #ifndef __TRUSTY__
                     LOG(ERROR) << "double not supported for this platform.";
 #endif  // __TRUSTY__
diff --git a/src/cppbor_parse.cpp b/src/cppbor_parse.cpp
index de724db..b40a667 100644
--- a/src/cppbor_parse.cpp
+++ b/src/cppbor_parse.cpp
@@ -473,19 +473,17 @@
                 case TRUE:
                 case FALSE:
                     return handleBool(*addlData, begin, pos, parseClient);
-#if defined(__STDC_IEC_559__) || FLT_MANT_DIG == 24 || __FLT_MANT_DIG__ == 24
                 case FLOAT_V:
+#if defined(__STDC_IEC_559__) || FLT_MANT_DIG == 24 || __FLT_MANT_DIG__ == 24
                     return handleFloat(*addlData, begin, pos, parseClient);
 #else
-                case FLOAT_V:
                     parseClient->error(begin, "Value float is not supported for platform.");
                     return {begin, nullptr};
 #endif  // __STDC_IEC_559__ || FLT_MANT_DIG == 24 || __FLT_MANT_DIG__ == 24
-#if defined(__STDC_IEC_559__) || DBL_MANT_DIG == 53 || __DBL_MANT_DIG__ == 53
                 case DOUBLE_V:
+#if defined(__STDC_IEC_559__) || DBL_MANT_DIG == 53 || __DBL_MANT_DIG__ == 53
                     return handleDouble(*addlData, begin, pos, parseClient);
 #else
-                case DOUBLE_V:
                     parseClient->error(begin, "Value double is not supported for platform.");
                     return {begin, nullptr};
 #endif  // __STDC_IEC_559__ || DBL_MANT_DIG == 53 || __DBL_MANT_DIG__ == 53
