Это странный вопрос, который меня озадачил. Я недавно заметил в приглашении Gnu Octave, можно вводить отрицательные нули, например так:
octave:2> abomination = -0
И он тоже это помнит:
octave:3> abomination
abomination = -0
В интересах здравого смысла отрицательный ноль равен обычному нулю. Но я также заметил, что у знака есть некоторые другие эффекты. Как это:
octave:6> 4 * 0
ans = 0
octave:7> 4 * -0
ans = -0
octave:8> 4 / 0
warning: division by zero
ans = Inf
octave:9> 4 / -0
warning: division by zero
ans = -Inf
Как видно, знак сохраняется при определенных операциях. Но мой вопрос почему. Это похоже на радикальный отход от стандартной математики, где ноль практически без знака. Есть ли привлекательные математические свойства для этого? Имеет ли это значение в определенных областях математики?
К вашему сведению: Matlab, для которого моделируется октава, не имеет отрицательных нулей. Любые попытки их использования рассматриваются как обычные нули.
EDIT:
Matlab имеет отрицательные нули, но они не отображаются в выводе по умолчанию.