Найти - Пользователи
Полная версия: почему питон 3,3 не правильно прибавляет?
Начало » Python для новичков » почему питон 3,3 не правильно прибавляет?
1
Vivatgm
вот пример скрипта, который был написан для подбора цены товара к определенной сумме(цена может быть до 0,01 руб, количество товаров целое)
z=125148
x=24.00
while x<=26:
print(x, ‘\t’, z/x)
x+=0.01

результат ответа таков:
24.0 5214.5
24.01 5212.328196584756
24.020000000000003 5210.158201498751
24.030000000000005 5207.990012484393
24.040000000000006 5205.823627287852
24.050000000000008 5203.659043659042
24.06000000000001 5201.496259351619
24.07000000000001 5199.335272122972
24.080000000000013 5197.176079734217
24.090000000000014 5195.0186799501835

почему далее прибавляется не 0,01, а появляется куча нулей с какими то цифрами?
Lexander
http://democoder.ru/article/14
Singularity
round(24.030000000000003, 2)
Singularity
Vivatgm
подбора цены товара к определенной сумме
Не понял что вам надо.
Можно детальней?
Vivatgm
Singularity
знаю что купили товар на сумму z знаю что цена его в пределах от 24 рублей до 26 рублей. надо узнать сколько товара купили(то есть получить целое число, так как количество товара не может быть 5203,05984 шт)
Vivatgm
Lexander
http://democoder.ru/article/14
получается решать подобные задачи возможно только переведя сначала значения в целые числа, а потом переводить к их истинным значениям и выводить на экран?
4kpt
Рекомендую посмотреть модуль decimal…
doza_and
Тут скорее надо смотреть не decimal а про Диофантовы уравнения.
http://www.math.ru/lib/book/plm/v08.djvu
Vivatgm
решил способом приведения опирируемых значений в целые числа. универсальным скрипт не делал
z=30378
x=24
z,x=z*100,x*100
while x<=2600:
print(x/100, ‘\t’, z/x)
x+=1
Vivatgm
z=125148
x=24.00
while x<=26:
print(round(x,2),'\t', z/round(x,2))
x+=0.01
а как такой вариант решения вопроса? подсказали. верен ли он?
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