У меня есть ситуация, когда я выполняю вычисление над огромным количеством строк, и я могу реально увеличить производительность, если я может отказаться от условного утверждения.Получите 1, 0, -1 как положительный, нулевой или отрицательный для целого числа с математической только
Что мне нужно для данного положительного, нулевого или отрицательного целого числа. Я хочу получить результат 1, 0, -1 соответственно.
Так что если я сделаю col/ABS(col)
, я получу 1 для положительного числа и -1 для отрицательного числа, но, конечно, если col
равно 0, то я получу ошибку. Я не могу получить ошибку.
Это кажется достаточно простым, но я не могу обмотать его впереди.
Хм, каково влияние умножения термина, которое у вас уже есть на 'col'? –
В зависимости от языка вы можете сказать: 'if not value return 0; else return value/abs (value) '. – fedorqui
'col/max (1, abs (col))'? Уродливый, но работает. (Для целых чисел, то есть.) – biziclop