New submission from Xinmeng Xia <[email protected]>:
In Python 2,the output is 1366. After converting by 2to3, the output is
1197.1463275484991
There exists bug in the conversion of 2to3. The output should be consistent for
original Python2 code and converted Python3 code.
At line 10 of this python file. The code "integer /= 10" is not converted by
2to3. Then I find there is no fixer for division in 2to3,which may lead to
inaccuracy of output or even worse results.
A possible fix solution is for the division problem of 2to3 I can think is that
for division expression such as a/b in Python2, we can add the following type
check to check type of a,b as a fix for conversion of 2to3:
def DivOp(a, b):
if (isinstance(a, int) and isinstance(b, int)):
return (a // b)
else:
return (a / b)
and modify a/b as Div(a,b) in converted Python3 file
----------
components: 2to3 (2.x to 3.x conversion tool)
files: euler016.py
messages: 348717
nosy: xxm
priority: normal
severity: normal
status: open
title: 2to3 Accuracy of calculation
type: behavior
versions: Python 3.7
Added file: https://bugs.python.org/file48515/euler016.py
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue37716>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com