我的代码是:
function checking(data,ans,no){
var results = data.split(','),i;
ans = parseFloat(Math.round(ans* 100) / 100).toFixed(2);
alert('correct : ' + results[--no]);
alert('my ans: ' + ans);
var correct = parseFloat(results[--no]);
var givenAns = parseFloat(ans);
var diff = correct - givenAns;
alert(diff);
if(correct == givenAns){
alert('correct');
$('#wrong'+ no).hide();
$('#ok'+ no).show();
setTimeout(function() { return true; }, 1500);
}
else{
alert('not correct');
$('#ok'+ no).hide();
$('#wrong'+ no).show();
var temp = no+1;
$('#notSolveBtn'+ temp).show();
return false;
}
}
function check_ans(ans,no){
$.get('AnswerSheet/1.txt', function(data) {
checking(data,ans,no)
}, 'text');
}
问题:
alert('correct : ' + results[--no]);
alert('my ans: ' + ans);
这两行警报 正确:115.38 我的回答:115.38 但是ans ==结果[ - no]总是返回false。如果存在任何类型不匹配问题,我再次将这两个值解析为float类型。还是同样的问题。要确认我从另一个减去:
var diff = correct - givenAns;
alert(diff);
但是alert(diff);
警告NAN应该警告0.00或0.我做错了什么。对不起,如果已经问过这个问题我google了很多时间,但没有运气。
答案 0 :(得分:1)
第一个问题是你只解析ans
而不是结果,所以在这里添加
resultFloat = parseFloat(result[no]).toFixed(2);
其次,如果你不是100%肯定你在做什么,我就不会使用--no
。在您的代码中,您比较了两个不同的东西,在第一个alert
中,您有一个不同的数组条目而不是分开的var correct = ...
。因此,最好只在一点定义新的no
,并将该值用于以下用途
function checking(data,ans,no){
var results = data.split(','),i;
no--;
resultFloat = parseFloat(result[no]).toFixed(2);
ans = parseFloat(Math.round(ans* 100) / 100).toFixed(2);
alert('correct : ' + resultFloat); // <-- this one and...
alert('my ans: ' + ans);
var correct = resultFloat; // <-- ...this one were different before, was that on purpose?
var givenAns = ans;
var diff = correct - givenAns;
alert(diff);
....