2015-04-30 70 views
2

我想匹配两个浮点数但低于无法检查:无法比较两个浮点数

https://jsfiddle.net/mcsab3aa/2/

JS代码:

$('#checkButton').click(function() { 
    var getusertarget = parseFloat(jQuery("#targetval").val()); 
    var currentval = $("#demo").find("h1").html(); 
    currentval = parseFloat(currentval.replace('$','')); 
    console.log(currentval); 
    console.log(getusertarget); 
    var dividerval = (currentval/targetval); // it should be 1 
    console.log(dividerval); 
    if (dividerval==1) { 
     $('.coins_drags').hide(); 
     //$("#demo").find("h1").html('$' + sum.toFixed(2) + '<br />Great job'); 
     console.log('great'); 
} 
    else { 
     //$("#demo").find("h1").html('$' + sum.toFixed(2) + '<br />Try again'); 
     //sum = 0; 
     console.log('try'); 
    } 

}); 
+0

假设发生了什么? –

+0

https://jsfiddle.net/mcsab3aa/3/ –

回答

2
var dividerval = (currentval/targetval); 

targetval是不确定的。你可能想要做的:

var dividerval = (currentval/getusertarget); 
+1

没有定义那么多未定义。 ;-) – RobG

1

尝试这样

var dividerval = (currentval/getusertarget); 

,而不是

var dividerval = (currentval/targetval); 
0

https://jsfiddle.net/mcsab3aa/4/

var h1 = $("#demo").find("h1"), 
    targetVal = f2num(h1.text()), 
    current = $("#targetval"), 
    msg = $('.msg'); 

msg.text('click after typing your guess'); 

$('#checkButton').click(function() { 
    if (current.val() == targetVal) { 
     msg.text('Great job'); 
     h1.html('$' + targetVal).show(); 
    } else { 
     h1.hide(); 
     msg.text('try again!'); 
    } 

}); 

function f2num(n) { 
    return parseFloat((n+"").replace(/[^0-9\.]+/g, '')); 
} 

的问题是,你试图解析数与$中。并且处理程序颠倒了。