Правило банкиров Oracle

Возможно, это - то, что Вы имеете в виду?

def bits_on_count(x):
    b = 0
    while x != 0:
        if x & 1: # Last bit is a 1
            b += 1
        x >>= 1 # Shift the bits of x right
    return b

существует также способ сделать это просто в Python 3.0:

def bits_on_count(x):
  return sum(c=='1' for c in bin(x))

Это использует то, что мусорное ведро (x) дает двоичное представление x.

6
задан Thilo 18 August 2009 в 08:48
поделиться

4 ответа

Щелкните правой кнопкой мыши по флэш-ролику, у вас должно быть отладка в меню, если это отладочная версия.

Или вы можете перейти к флэш тестовая страница на сайте Adobe. Вы можете найти возможности плеера внизу.

Это редко встречается в реальных банках, которые предпочитают округлять в большую сторону, если деньги поступают в их сторону, и округлять в меньшую сторону, когда они уходят в сторону клиентов.

ORACLE NUMBER на самом деле является довольно хорошей реализацией десятичной арифметики и является точной, насколько это возможно.

11
ответ дан 8 December 2019 в 12:21
поделиться

Вы всегда можете реализовать свою собственную функцию для банковского округления, как описано здесь .

1
ответ дан 8 December 2019 в 12:21
поделиться

Округление банкиров с 0,5 до 0: округление в сторону четных чисел.

1
ответ дан 8 December 2019 в 12:21
поделиться

Oracle реализовал округление на половину от нуля :

SQL> select round(22.5) from dual
  2  /

ROUND(22.5)
-----------
         23

SQL> select round(23.5) from dual
  2  /

ROUND(23.5)
-----------
         24

SQL> select round(-23.5) from dual
  2  /

ROUND(-23.5)
------------
         -24

SQL> select round(-22.5) from dual
  2  /

ROUND(-22.5)
------------
         -23

SQL>

Почему они не меняют его на округление Банкиров? Что ж, для большинства целей округление до половины от нуля вполне достаточно. Кроме того, есть старый запасной вариант, изменение которого, вероятно, сломает слишком большую часть существующей кодовой базы - как самой Oracle, так и всех ее клиентов.

4
ответ дан 8 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: