pforth: fix FROUND (#101)
[debian/pforth] / csrc / pfinnrfp.h
index 21d34849b6d2a5a7e86d8d5de8a2d46a0695c826..4a3095ba6bf5f3c888665636b4976bb826dc29b4 100644 (file)
         break;
 
     case ID_FP_FROUND:
-        PUSH_TOS;
-        TOS = (cell_t)fp_round(FP_TOS);
-        M_FP_DROP;
+        /* This was broken before and used to push its result to the
+         * integer data stack! Now it conforms to the ANSI standard.
+         * https://github.com/philburk/pforth/issues/69
+         */
+        FP_TOS = (PF_FLOAT)fp_round(FP_TOS);
         break;
 
     case ID_FP_FSWAP: /* ( -- ) ( F: r1 r2 -- r2 r1 ) */