
ответ:
округлением чисел в python занимается встроенная функция round.
round(number[, ndigits]) - округляет число number до ndigits знаков после запятой (по умолчанию, до нуля знаков, то есть, до ближайшего целого)
тут есть одна особенность, о которой нужно знать, и о которой часто забывают.
со школы многие привыкли, что, когда (n + 1) знак = 5, а последующие знаки равны нулю, округление производится всегда в большую по модулю сторону.
однако, как видно из примеров, в python это не так. здесь используется так называемое "банковское округление", то есть округление к ближайшему чётному.
на практике это оказывается не так уж и важно
что-то не так, правда? на самом деле, всё именно так, как и задумывалось. просто из-за проблем с точностью чисел с плавающей точкой это число чуть больше, чем 2.85, а потому округляется до 2.9
На бумаге сорри не получится, но постараюсь досконально объяснить:
1) 379 в 10 системе счисления сначала переводим в 2 систему счисления: мы число 379 делим на 2 до того момента, когда выражение будет равно 0.
379 : 2 = 189 остаток 1
189 : 2 = 94 остаток 1
94 : 2 = 47 остаток 0
47 : 2 = 23 остаток 1
23 : 2 = 11 остаток 1
11 : 2 = 5 остаток 1
5 : 2 = 2 остаток 1
2 : 2 = 1 остаток 0
1 : 2 = 0 остаток 1
Теперь, мы обращаем наше внимание на остаток, оно и является ответом, только есть нюанс, мы должны писать числа с конца.
Получаем, что 379 в 10 сист.сч. = 101111011 в 2 системе счисления
Аналогично и с 8 системой счисления :
379 : 8 = 47 остаток 3
47 : 8 = 5 остаток 7
5 : 8 = 0 остаток 5
379 в 10 системе счисления = 573 в 8 системе счисления