JQUERY中的数学计算问题
我有两个文本框。我在一个文本框中输入数字。我为该文本框编写以下JQUERY,当从第一个文本框中将焦点移出时,该文本框将被执行。 JQUERY代码从第一个文本框中获取输入值,并将其乘以十进制数34.95,并在第二个文本框中显示答案。JQUERY中的数学计算问题
的代码是做计算点点OK,因为
当我在第一个文本框中输入值1000它给出了第二个文本框回答34950,当我在第一个文本框中输入值100它给答案第二个文本框中为3495.0000000000005。
**请任何人告诉我什么是问题。问题在于我的JQUERY代码。
我也想用小数点显示答案。
答案应该总是在小数点后只有两个数字。所以如何实现这一点。**
这是我的JQUERY代码。
$("#id_pvalue").focusout(function() {
q=$("#id_pvalue").val();
var ans=q*34.95;
$("#id_tvalue").val(ans);
});
请指导我的朋友!
谢谢!
虽然Darin的答案应该工作,这里的另一种方法来限制你的价值小数点后两位:
var ans=q*34.95;
ans = ans.toFixed(2);
尝试
$("#id_pvalue").blur(function() {
q= parseFloat($(this).val());
var ans=q*34.95;
$("#id_tvalue").val(ans);
});
@rahul 仍然有与上面解释1相同的问题。当输入100时它给出ans 3495.0000000000005 2.当输入1000时它给出了ans 34950我现在做什么? – 2010-04-09 12:44:11
的val函数返回一个字符串。你需要将其转换为数字:
$('#id_pvalue').focusout(function() {
var q = parseFloat($(this).val());
if (!isNaN(q)) {
var ans = Math.round(q * 34.95 * 100)/100;
// If you always want to have two decimals after the separator
// you could use the toFixed function:
// var ans = (q * 34.95).toFixed(2);
$('#id_tvalue').val(ans);
}
});
@Darin季米特洛夫 仍然有同样的问题,上述 1.作为解释输入100它给俺们当3495.0000000000005 2.当进入1000它给俺们34950 我现在做什么? – 2010-04-09 12:43:25
由于存储浮点数的方式,您可能需要对结果进行四舍五入。看看这篇文章:http://www.javascriptkit.com/javatutors/round.shtml – 2010-04-09 12:47:49
我已经更新了我的答案,以反映结果的四舍五入。 – 2010-04-09 12:49:03
..而除了上述所有的答案,看看下面的文章基于计算机的浮点运算
What Every Computer Scientist Should Know About Floating-Point Arithmetic
$("#id_pvalue").focusout(function() {
var q= parseFloat($("#id_pvalue").val());
var ans= (q*34.95).toFixed(2);
$("#id_tvalue").val(ans);
});
jQuery是一个框架,** javascript **的语言。 – Dykam 2010-04-09 13:08:50