Hay家伙,我有2个花车,两个都来自输入框。
我需要比较这两个浮点数,如果一个是负数而一个是正数则抛出一个错误。如果他们既是积极的,也可能都是消极的,那很好。
有什么想法吗?
由于
答案 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)
}