first pass as floating point fixes
diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index 25c62f7..6aee680 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -49,6 +49,7 @@
  =====================================================================================*/
 
 #include "qcbor.h"
+#include "ieee754.h"
 
 
 
@@ -300,6 +301,17 @@
       case CBOR_SIMPLE_BREAK:  // 31
          nReturn = QCBOR_ERR_UNSUPPORTED;
          break;
+           
+      case SINGLE_PREC_FLOAT:
+         pDecodedItem->val.fnum  = IEEE754_HalfToFloat((uint16_t)uNumber);
+         pDecodedItem->uDataType = QCBOR_TYPE_FLOAT;
+         break;
+      case HALF_PREC_FLOAT:
+         pDecodedItem->val.fnum = UsefulBufUtil_CopyUint32ToFloat((uint32_t)uNumber);
+         break;
+      case DOUBLE_PREC_FLOAT:
+         pDecodedItem->val.dfnum = UsefulBufUtil_CopyUint64ToDouble(uNumber);
+         break;
          
       case CBOR_SIMPLEV_FALSE: // 20
       case CBOR_SIMPLEV_TRUE:  // 21