저는 마케도니아 출신의 Bobi이고, JavaScript / jQuery 코드에서 한 가지 추악한 문제를 발견했습니다.
내 텍스트 영역에 일부 값을 입력 한 다음 특정 공식에 따라 해당 값을 계산하고 결과를 경고로 표시해야합니다.
내 코드는 다음과 같습니다.
//First this is my formula
function calc(data) {
ret = [];
for(var i = 0; i < data.length; i++) {
ret[i] = (3.5 + data[i] + 0.5 * (data[i] - 3));
}
return ret;
}
//Now, taking values from the text area using valHooks
$.valHooks.textarea = {
get: function(elem) {
return elem.value.replace( /\r?\n/g, "\r\n" );
}
};
$('button').click(function() {
//in this step the values are successfully taken from the textarea
var sample = {};
sample.data = $('textarea').val();
//alert(sample.data); <-- this works fine
var result = {};
result.data = calc(sample.data); //but here seems to be the problem
alert(result.data); //the alert shows some gibberish values
예를 들어 1.6, 3.9, 3.3, 4.0, 2.5, 2.8 ... 이러한 값을 입력하면 경고는 다음 계산 된 값을 표시해야합니다. 4.4, 7.85, 6.95, 8.0, 5.75, 6.2 ...
여기도 jsfiddle http://jsfiddle.net/Avramoski/skqG4/
내가 작은 것을 놓치고 있다는 것을 알고 있지만 그것이 무엇인지 하나님은 알고 계십니다 ... 제발 도와주세요! :(
내가 언급했듯이 다음 세 가지 변경 사항을 수행하고 코딩을 즐기십시오 .. :)
function calc(data) {
ret = [];
for(var i = 0; i < data.length; i++) {
data[i] = parseFloat(data[i]); // here u want to parse ur string to float
ret[i] = (3.5 + data[i] + 0.5 * (data[i] - 3));
ret[i] = Math.round(ret[i] * 100) / 100; // this code for get rounded answer like exactly u needed
}
return ret;
}
$.valHooks.textarea = {
get: function(elem) {
return elem.value.replace( /\r?\n/g, "\r\n" );
}
};
$('button').click(function() {
var sample = {};
sample.data = $('textarea').val();
sample.data = sample.data.split(","); //textarea value transferring to array
//alert(sample.data);
var result = {};
result.data = calc(sample.data);
alert(result.data);
} // and dont miss this curly bracket :D
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다