Найти - Пользователи
Полная версия: :) Непонятка при делении простых чисел
Начало » Python для новичков » :) Непонятка при делении простых чисел
1
QAS
При делении больших чисел на 10, с последующим приведением к целому возникает вот такой вот глюк:

>>> a=555555555555555555555555555555555555555555555555555555555555555
>>> int(a/10)
55555555555555558769886663484831657077409927176391135454035968

>>> a=99999999999999999999
>>> int(a/10)
10000000000000000000
Заранее благодарен за обьяснение
Singularity
“простых чисел”
а где простые числа ?
примеры у меня работают правильно
sp3
>>> 10/3
0: 3
>>> 10.0/3
1: 3.3333333333333335
от типа зависит int, float
JOHN_16
sp3
речь вовсе не об этом

QAS
у меня как и у Singularity приведенный вами пример работает. Поэтому будьте так любезны, предоставьте базовую информацию для любого поста на этом форуме, а именно ти и версию ОС и Питона
Андрей Светлов

JOHN_16, просто у товарища QAS стоит Python3. sp3 правильно указал на причину непонятки. Догадались, в чем было дело?

QAS
Версия ОС-WinXP SP3
Python 3.2

При повторных попытках тоже получается следующее:
>>> a=55555555555555555555555555555555555555555555/10
>>> a
5.5555555555555556e+42
>>> int(a)
5555555555555555632984509421896721739284480
>>>
Складывается впечатление, что при переводе из int во float после деления интерпретатор просто округляет получившееся число на определенном разряде, хотя разрядность числа для float вполне допустимая.
Изначальная задачка заключалась в записи цифр целого числа в список. С числами поменьше все получается правильно, а вот с порядками типа 10**42 уже вылазят проблемы.

PS: насчет ‘простых’ чисел я действительно погарячился
Андрей Светлов

На минуточку, разрядность мантиссы у float — примерно 16 десятичных знаков.

JOHN_16
Андрей Светлов
В отличиях поведения деления по умолчанию? (имеется ввиду a/b )
P.S. в python3 не силен ибо пока что не использую
Андрей Светлов

ну да, 5555/10 в тройке даст float, для целочисленного деления следует применять 5555//10

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB