Вы говорите: «Я ожидаю округления пятого десятичного значения».Хорошо, но при каких обстоятельствах?Учитывая, что входные данные вашего примера имеют только 6 значащих цифр, а число с плавающей точкой Python (64-разрядное) поддерживает около 15 цифр, вы можете безопасно добавить небольшую сумму, чтобы получить желаемое поведение:
(df2 + 1e-12).round(5)
Это дает:
0
0 0.70313
1 0.83122
Предполагается, что наибольшее значение в df2
меньше 1000 или около того, а наименьшее значение меньше, чем приблизительно 1e-6, при условии 6 сигфигов.Добавление небольшого количества гарантирует, что все конечные «5» округляются в большую сторону, при условии, что ваши входные данные находятся в некотором известном диапазоне, где небольшое добавление не сделает результаты неверными.