summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-12-30 00:33:32 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-12-30 00:33:32 +0200
commitf79cd6a2330bce1d7bf886a440d80441cdbf9209 (patch)
treede99c310685ce720b4fc0f21ebaf23128bc12f09
parent12033df511a5a5f0237a764379aacfbceb6c45dd (diff)
downloadmicropython-f79cd6a2330bce1d7bf886a440d80441cdbf9209.tar.gz
micropython-f79cd6a2330bce1d7bf886a440d80441cdbf9209.zip
py: Implement mp_obj_new_int_from_float() for MICROPY_LONGINT_IMPL_NONE.
-rw-r--r--py/objint.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/py/objint.c b/py/objint.c
index 8f626190ce..0aa281edd1 100644
--- a/py/objint.c
+++ b/py/objint.c
@@ -262,6 +262,14 @@ mp_obj_t mp_obj_new_int_from_uint(mp_uint_t value) {
return mp_const_none;
}
+#if MICROPY_PY_BUILTINS_FLOAT
+mp_obj_t mp_obj_new_int_from_float(mp_float_t val) {
+ // TODO raise an exception if the int won't fit
+ mp_int_t i = MICROPY_FLOAT_C_FUN(trunc)(val);
+ return mp_obj_new_int(i);
+}
+#endif
+
mp_obj_t mp_obj_new_int(mp_int_t value) {
if (MP_SMALL_INT_FITS(value)) {
return MP_OBJ_NEW_SMALL_INT(value);