比较两个浮点数,看它们是否为负数,或两者都是正数

dot*_*tty 2 javascript floating-point compare

干草伙计,我有2个花车,都来自输入盒.

我需要比较这两个浮点数,如果一个是负数,一个是正数则抛出一个错误.如果他们既是积极的,也可能都是消极的,那很好.

有任何想法吗?

谢谢

Chr*_*isF 11

将它们相乘.

如果答案是肯定的,那么它们都是相同的标志.

如果答案是否定的,那么它们的符号相反.

如果答案为零(在某个值内处理舍入误差),则一个或两个都为零,您必须单独检查它们.然后,您必须决定在您的方案中0被视为正面还是负面.


xto*_*ofl 8

虽然可以检测产品的符号,但这并不是您感兴趣的.特别是如果您要在大量浮子上使用它(例如,检测时间流中的过零点).

最简单的方法是准确表达你的要求:是否等于b的符号?

function samesign( a, b ) {
  var aPositive = a >= 0;
  var bPositive = b >= 0;
  return aPositive == bPositive;
}
Run Code Online (Sandbox Code Playgroud)

或更短:

function samesign( a, b ) { return (a>=0) == (b>=0); }
Run Code Online (Sandbox Code Playgroud)