gpt4 book ai didi

javascript - jquery中无法比较两个 float

转载 作者:行者123 更新时间:2023-12-03 09:08:49 26 4
gpt4 key购买 nike

我的代码是:

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 == results[--no] 总是返回 false。如果存在任何类型不匹配问题,我再次将这两个值解析为浮点类型。还是同样的问题。为了确认这一点,我将其中一个减去另一个:

 var diff = correct - givenAns;
alert(diff);

但是 alert(diff); 警报 NAN 应该警报 0.00 或 0。我做错了什么。抱歉,如果这个问题已经问过。我用谷歌搜索了很多时间但没有运气。

最佳答案

第一个问题是您只解析 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);
....

关于javascript - jquery中无法比较两个 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32139316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com