Вывести точное число знаков после запятой для целого числа
Подвиг 9. Имеется график функции f(x) = 0.5x^2 - 2. Необходимо записать генератор, который бы выдавал значения этой функции для аргумента x в диапазоне [a; b] с шагом 0.01. Величины a, b вводятся с клавиатуры в одну строчку через пробел как целые числа (a< b). Вывести на экран первые 20 значений функции с точностью до сотых, взятых из генератора.
P.S. Значения функции вычислять командой:
f(x) = 0.5 * pow(x, 2) - 2.0
a, b = map(int, input().split())
b *= 100
gen = (0.5 * pow(x/100, 2) - 2.0 for x in range(a,b))
for i in range(20):
print(f"{(next(gen)):0.2f}", end=" ")
У меня выводит -
-2.00 -2.00 -2.00 -2.00 -2.00 -2.00 -2.00 -2.00 -2.00 -2.00 -2.00 -1.99 -1.99 -1.99 -1.99 -1.99 -1.99 -1.99 -1.98 -1.98
в задаче дан ответ :
-2.0 -2.0 -2.0 -2.0 -2.0 -2.0 -2.0 -2.0 -2.0 -2.0 -2.0 -1.99 -1.99 -1.99 -1.99 -1.99 -1.99 -1.99 -1.98 -1.98
Что не так -2.0 и -2.00 ?
Ответы (1 шт):
Все спасибо за комментарии, в итоге система на Stepik приняла ответ, через round прям в gen , пробовал в принте но не проходит тест, странно через f строку мне кажется всё таки правильнее...
f"{(next(gen)):0.2f}".replace('00', '0') тоже попробую, кривовато конечно
gen = ( round((0.5 * pow((i/100),2)-2),2) for i in range(a,b))
for i in range(20):
print((next(gen)), end=" ")