diff options
-rw-r--r-- | py/objstr.c | 4 | ||||
-rw-r--r-- | tests/float/string-format-modulo.py | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/py/objstr.c b/py/objstr.c index 4100b69beb..593c39cb09 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -1273,7 +1273,7 @@ not_enough_args: if (alt) { flags |= (PF_FLAG_SHOW_PREFIX | PF_FLAG_SHOW_OCTAL_LETTER); } - pfenv_print_mp_int(&pfenv_vstr, arg_as_int(arg), 1, 8, 'a', flags, fill, width); + pfenv_print_mp_int(&pfenv_vstr, arg, 1, 8, 'a', flags, fill, width); break; case 'r': @@ -1296,7 +1296,7 @@ not_enough_args: case 'X': case 'x': - pfenv_print_mp_int(&pfenv_vstr, arg_as_int(arg), 1, 16, *str - ('X' - 'A'), flags | alt, fill, width); + pfenv_print_mp_int(&pfenv_vstr, arg, 1, 16, *str - ('X' - 'A'), flags | alt, fill, width); break; default: diff --git a/tests/float/string-format-modulo.py b/tests/float/string-format-modulo.py index 549b09c1c0..ddca0b5555 100644 --- a/tests/float/string-format-modulo.py +++ b/tests/float/string-format-modulo.py @@ -5,6 +5,12 @@ print("%d" % 1.0) print("%i" % 1.0) print("%u" % 1.0) +# these 3 have different behaviour in Python 3.x versions +# uPy raises a TypeError, following Python 3.5 (earlier versions don't) +#print("%x" % 18.0) +#print("%o" % 18.0) +#print("%X" % 18.0) + print("%e" % 1.23456) print("%E" % 1.23456) print("%f" % 1.23456) |