У меня есть K список поплавков, что происходит от некоторых предыдущих расчетов, такие как:Номера округления - Что здесь не так?
K = numpy.arange(0.01, 0.3, 0.01) K = [0.01, .... 0.28999999999999998, 0.29999999999999999]
Теперь, давайте круглый эти цифры на 2-ой десятичный:
K_rounded_2 = [ round(kk, 2) for kk in K ]
Дает:
>>> K_rounded_2 [0.01, 0.02, 0.029999999999999999, 0.040000000000000001, 0.050000000000000003, 0.059999999999999998, 0.070000000000000007, 0.080000000000000002, 0.089999999999999997, 0.10000000000000001, 0.11, 0.12, 0.13, 0.14000000000000001, 0.14999999999999999, 0.16, 0.17000000000000001, 0.17999999999999999, 0.19, 0.20000000000000001, 0.20999999999999999, 0.22, 0.23000000000000001, 0.23999999999999999, 0.25, 0.26000000000000001, 0.27000000000000002, 0.28000000000000003, 0.28999999999999998, 0.29999999999999999]
Теперь, если я был для ручного ввода K в виде списка, просто писать каждый элемент:
K = [ enter value 1, enter value 2, ...]
, а затем сделать:
K_rounded_2 = [ round(kk, 2) for kk in K ]
, то результат, как и ожидалось:
>>> K_rounded_2
[0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3]
Таким образом, существует различная трактовка между списком, который обеспечивается некоторым подсчетом и тот, который просто вводится? Зачем ?
Невозможно воспроизвести это, не видя ваших предыдущих расчетов. Можете ли вы изменить свой вопрос, чтобы включить их? Включите также фактический код округления. – Wolf
@ Вольф: Я не думаю, что это важно * как * эти значения были получены. Я предполагаю, что проблема лежит где-то в другом месте. –
@TimPietzcker Я согласен – Wolf