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

时间:2010-01-06 14:49:58

标签: javascript floating-point compare

Hay家伙,我有2个花车,两个都来自输入框。

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

有什么想法吗?

由于

4 个答案:

答案 0 :(得分:11)

将它们相乘。

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

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

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

答案 1 :(得分:8)

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

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

function samesign( a, b ) {
  var aPositive = a >= 0;
  var bPositive = b >= 0;
  return aPositive == bPositive;
}

或更短:

function samesign( a, b ) { return (a>=0) == (b>=0); }

答案 2 :(得分:2)

做一些像:

if float1*float2<0
    Error

答案 3 :(得分:0)

function isSameSign(a,b){
  var r = a*b; 
  return (r >= 0)
}