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