diff --git a/inc/qcbor/qcbor_spiffy_decode.h b/inc/qcbor/qcbor_spiffy_decode.h
index 8e08cfd..21c19ea 100644
--- a/inc/qcbor/qcbor_spiffy_decode.h
+++ b/inc/qcbor/qcbor_spiffy_decode.h
@@ -171,6 +171,33 @@
 */
 
 
+
+
+/** The data item must be a tag of the expected type. It is an error
+ if it is not. For example when calling QCBORDecode_GetEpochDate(),
+ the data item must be an @ref CBOR_TAG_DATE_EPOCH tag.
+ See @ref Tag-Usage. */
+#define QCBOR_TAG_REQUIREMENT_TAG 0
+
+/** The data item must be of the type expected for content data type
+ being fetched. It is an error if it is not. For example, when
+ calling QCBORDecode_GetEpochDate() and it must not be an @ref
+ CBOR_TAG_DATE_EPOCH tag. See @ref Tag-Usage. */
+#define QCBOR_TAG_REQUIREMENT_NOT_A_TAG  1
+
+/** Either of the above two are allowed. This allows implementation of
+ being liberal in what you receive, but it is better if CBOR-based
+ protocols pick one and stick to and not required the reciever to
+ take either. See @ref Tag-Usage. */
+#define QCBOR_TAG_REQUIREMENT_OPTIONAL_TAG 2
+
+/** Add this into the above value if other tags not processed by QCBOR
+ are to be allowed to surround the data item. See @ref Tag-Usage. */
+#define QCBOR_TAG_REQUIREMENT_ALLOW_ADDITIONAL_TAGS 0x80
+
+
+
+
 /** Conversion will proceed if the CBOR item to be decoded is an
     integer or either type 0 (unsigned) or type 1 (negative). */
 #define QCBOR_CONVERT_TYPE_XINT64           0x01
@@ -188,34 +215,11 @@
 #define QCBOR_CONVERT_TYPE_BIGFLOAT         0x10
 
 
-/** The data item must be a tag of the expected type. It is an error
-    if it is not. For example when calling QCBORDecode_GetEpochDate(),
-    the data item must be an @ref CBOR_TAG_DATE_EPOCH tag.
-    See @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_TAG 0
-
-/** The data item must be of the type expected for content data type
-    being fetched. It is an error if it is not. For example, when
-    calling QCBORDecode_GetEpochDate() and it must not be an @ref
-    CBOR_TAG_DATE_EPOCH tag. See @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_NOT_A_TAG  1
-
-/** Either of the above two are allowed. This allows implementation of
-    being liberal in what you receive, but it is better if CBOR-based
-    protocols pick one and stick to and not required the reciever to
-    take either. See @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_OPTIONAL_TAG 2
-
-/** Add this into the above value if other tags not processed by QCBOR
-    are to be allowed to surround the data item. See @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_ALLOW_ADDITIONAL_TAGS 0x80
-
-
 
 /**
  @brief Decode next item into a signed 64-bit integer.
 
- @param[in] pCtx   The decode context.
+ @param[in] pCtx      The decode context.
  @param[out] pnValue  The returned 64-bit signed integer.
 
  The CBOR data item to decode must be a positive or negative integer
@@ -310,13 +314,13 @@
  See @ref Decode-Errors for discussion on how error handling works.
 
  Note that most these types can support numbers much larger that can
- be represented by in a 64-bit integer, so @ref @ref
+ be represented by in a 64-bit integer, so @ref
  QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW may often be encountered.
 
  When converting bignums and decimal fractions @ref
  QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW will be set if the result is
  below 1, unless the mantissa is zero, in which case the coversion is
- successful and the value of 0 is returned. TODO: is this right?
+ successful and the value of 0 is returned.
 
  See also QCBORDecode_GetInt64ConvertAll() which does some of these
  conversions, but links in much less object code. See also
@@ -402,9 +406,9 @@
 /**
  @brief Decode next item into an unsigned 64-bit integer with conversions
 
- @param[in] pCtx   The decode context.
- @param[in] uConvertTypes The integer conversion options.
- @param[out] puValue  The returned 64-bit unsigned integer.
+ @param[in] pCtx           The decode context.
+ @param[in] uConvertTypes  The integer conversion options.
+ @param[out] puValue       The returned 64-bit unsigned integer.
 
  This is the same as QCBORDecode_GetInt64ConvertAll(), but returns an
  unsigned integer and thus sets @ref QCBOR_ERR_NUMBER_SIGN_CONVERSION
@@ -471,7 +475,7 @@
  This will decode CBOR integer and floating-point numbers, returning
  them as a double floating-point number. This function supports @ref
  QCBOR_CONVERT_TYPE_XINT64 and @ref QCBOR_CONVERT_TYPE_FLOAT
- conversions. If the CBOR is not one of the requested types or a type
+ conversions. If the encoded CBOR is not one of the requested types or a type
  not supported by this function, @ref QCBOR_ERR_UNEXPECTED_TYPE is
  set.
 
@@ -484,7 +488,7 @@
  a half-precision number is encountered.
 
  Positive and negative integers can always be converted to
- floating-point, so this will never error on type 0 or 1 CBOR.
+ floating-point, so this will never error on CBOR major type 0 or 1.
 
  Note that a large 64-bit integer can have more precision (64 bits)
  than even a double floating-point (52 bits) value, so there is loss
@@ -510,9 +514,9 @@
 /**
  @brief Decode next item as a double floating-point value with conversion.
 
- @param[in] pCtx   The decode context.
- @param[in] uConvertTypes The integer conversion options.
- @param[out] pdValue  The returned floating-point value.
+ @param[in] pCtx           The decode context.
+ @param[in] uConvertTypes  The integer conversion options.
+ @param[out] pdValue       The returned floating-point value.
 
  This is the same as QCBORDecode_GetDoubleConvert() but supports many
  more conversions at the cost of linking in more object code. The
@@ -523,8 +527,10 @@
 
  Big numbers, decimal fractions and big floats that are too small or
  too large to be reprented as a double floating-point number will be
- returned as plus or minus zero or infinity. There is also often loss
- of precision in the conversion.
+ returned as plus or minus zero or infinity rather than setting an
+ under or overflow error.
+
+ There is often loss of precision in the conversion.
 
  See also QCBORDecode_GetDoubleConvert() and QCBORDecode_GetDoubleConvert().
 */
diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index a7cb019..468d295 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -4771,7 +4771,7 @@
 #ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
       case QCBOR_TYPE_DECIMAL_FRACTION:
          if(uConvertTypes & QCBOR_CONVERT_TYPE_DECIMAL_FRACTION) {
-            // TODO: rounding and overflow errors
+            // Underflow gives 0, overflow gives infinity
             *pdValue = (double)pItem->val.expAndMantissa.Mantissa.nInt *
                         pow(10.0, (double)pItem->val.expAndMantissa.nExponent);
          } else {
@@ -4781,8 +4781,9 @@
 
       case QCBOR_TYPE_BIGFLOAT:
          if(uConvertTypes & QCBOR_CONVERT_TYPE_BIGFLOAT ) {
-           *pdValue = (double)pItem->val.expAndMantissa.Mantissa.nInt *
-                                exp2((double)pItem->val.expAndMantissa.nExponent);
+            // Underflow gives 0, overflow gives infinity
+            *pdValue = (double)pItem->val.expAndMantissa.Mantissa.nInt *
+                              exp2((double)pItem->val.expAndMantissa.nExponent);
          } else {
             return QCBOR_ERR_UNEXPECTED_TYPE;
          }
@@ -4817,7 +4818,6 @@
 
       case QCBOR_TYPE_DECIMAL_FRACTION_NEG_BIGNUM:
         if(uConvertTypes & QCBOR_CONVERT_TYPE_DECIMAL_FRACTION) {
-           // TODO: -infinity
          double dMantissa = -ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
          *pdValue = dMantissa * pow(10, (double)pItem->val.expAndMantissa.nExponent);
          } else {
@@ -4836,7 +4836,6 @@
 
       case QCBOR_TYPE_BIGFLOAT_NEG_BIGNUM:
         if(uConvertTypes & QCBOR_CONVERT_TYPE_BIGFLOAT) {
-           // TODO: -infinity
          double dMantissa = -1-ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
          *pdValue = dMantissa * exp2((double)pItem->val.expAndMantissa.nExponent);
          } else {
@@ -4845,7 +4844,6 @@
          break;
 #endif /* ndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
 
-
       default:
          return QCBOR_ERR_UNEXPECTED_TYPE;
    }
diff --git a/test/qcbor_decode_tests.c b/test/qcbor_decode_tests.c
index 19d8a78..a965606 100644
--- a/test/qcbor_decode_tests.c
+++ b/test/qcbor_decode_tests.c
@@ -5435,6 +5435,52 @@
       QCBOR_ERR_HW_FLOAT_DISABLED,
 #endif /* QCBOR_DISABLE_FLOAT_HW_USE */
    },
+
+   {
+      "big float underflow [9223372036854775806, -9223372036854775806]",
+      {(uint8_t[]){
+         0xC5, 0x82,
+            0x3B, 0x7f, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+            0x1B, 0x7f, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE}, 20},
+#ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
+      0,
+      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW,
+      0,
+      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW,
+      0,
+      QCBOR_SUCCESS
+#else /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
+      0,
+      QCBOR_ERR_UNEXPECTED_TYPE,
+      0,
+      QCBOR_ERR_UNEXPECTED_TYPE,
+      0.0,
+      QCBOR_ERR_UNEXPECTED_TYPE
+#endif /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
+   },
+
+   {
+      "bigfloat that evaluates to -INFINITY",
+      {(uint8_t[]){
+         0xC5, 0x82,
+            0x1B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+            0xC3, 0x42, 0x01, 0x01}, 15},
+#ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
+      0,
+      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW,
+      0,
+      QCBOR_ERR_NUMBER_SIGN_CONVERSION,
+      -INFINITY,
+      QCBOR_SUCCESS
+#else /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
+      0,
+      QCBOR_ERR_UNEXPECTED_TYPE,
+      0,
+      QCBOR_ERR_UNEXPECTED_TYPE,
+      0.0,
+      QCBOR_ERR_UNEXPECTED_TYPE
+#endif /* QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA*/
+   },
 };
 
 
