From 2c75665445b555d0bf712566e7d8874e57c5ad81 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 31 Dec 2014 02:20:57 +0200 Subject: [PATCH] objstr: Fix %d-formatting of floats. --- py/objstr.c | 6 +----- tests/float/float2int.py | 5 +++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/py/objstr.c b/py/objstr.c index 16ee2ea1dd..3d9fd6f5e8 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -827,11 +827,7 @@ static bool arg_looks_numeric(mp_obj_t arg) { static mp_obj_t arg_as_int(mp_obj_t arg) { #if MICROPY_PY_BUILTINS_FLOAT if (MP_OBJ_IS_TYPE(arg, &mp_type_float)) { - - // TODO: Needs a way to construct an mpz integer from a float - - mp_int_t num = mp_obj_get_float(arg); - return MP_OBJ_NEW_SMALL_INT(num); + return mp_obj_new_int_from_float(mp_obj_get_float(arg)); } #endif return arg; diff --git a/tests/float/float2int.py b/tests/float/float2int.py index 59d904e58a..ca2914c01a 100644 --- a/tests/float/float2int.py +++ b/tests/float/float2int.py @@ -3,3 +3,8 @@ print(int(1418774543.)) # TODO: General case with large exponent #print(int(2.**100)) + +print("%d" % 1418774543.) + +# TODO: General case with large exponent +#print("%d" % 2.**100)