Скиммер на дверях банка

Скиммер на двери банка (17.40КиБ)

На дверях некоторых банков есть считыватель — чтобы в нерабочие часы пускать к банкоматам только клиентов банка. Я никогда не задумывался над тем, что там может стоять скиммер. На фото — как раз такая модель.

Поясню на всякий случай, скиммер — устройство, которое, обычно, крепится к банкомату, маскируюсь под его часть, перед отверстием ввода карты. Когда вы вставляете карту в банкомат, она проходит через скиммер и информация с магнитной полосы карты считывается в память скиммера. PIN-код при этом фиксируется либо незаметно установленной камерой, либо нашлёпкой на клавиатуру.

Будьте осторожны!

5 комментариев

Минус ноль в JavaScript

Я, конечно, знаю, что JavaScript хранит числа по стандарту IEEE 754, но всё больше как-то теоретически. То есть, я знаю, что в языке есть NaN, бесконечности с разным знаком…

Но вот о существовании минус нуля я как-то не думал, хотя знал, что он существует. Но его существование было для меня чем-то довольно абстрактным, не влияющим не реальную жизнь, потому что я мало что знал о его свойствах.

Но, оказывается, в редких случаях отрицательный ноль может себя проявлять иначе, чем ноль положительный.

Как вы можете получить минус ноль? Например, просто написав что-то вроде «-x», где в «x» оказался ноль. Или округлив отрицательное число: Math.ceil(-0.5). В стандарте положительный и отрицательный ноль равны, знак нуля не исчезает при умножении, делении и нахождении квадратного корня. То есть он довольно живуч, но малозаметен.

Похоже, что в реальном коде минус ноль может проявить себя в двух вещах: делении и операции atan2, именно так его и можно отличить от положительного нуля:

function isNegativeZero(x) {
    return x === 0 && (1 / x) === -Infinity
}

function isNegativeZeroToo(x) {
    return x === 0 && Math.atan2(x, x) < 0
}

60 комментариев