2

在我的 jQuery 程序中,我有 3 个文本框。一个用于net weight,一个用于rate和最后一个只读文本框amount。金额文本框计算费率和净重文本框的乘积并显示结果。

function amtcal(id)
{    
    var ab="#a"+id;
    var ntwt=parseInt($(ab).val(),10);
    var a="#"+id;
    var rval=parseInt($(a).val(),10);
    var product=rval*ntwt;
    var abc="#aa"+id;
    $(abc).val(product);
}    

查看jsFiddle 的工作示例

该程序正在运行,但它导致的错误是它忽略了十进制值。如果我输入以下内容 :- Nt wt = 5.5 | Rate = 5.2,则输出为25.

4

5 回答 5

3

parseInt除非您想要的结果确实是整数,否则不要用于将文本转换为数字。parseFloatNumber将在这里完成工作。;)

于 2013-08-22T12:38:07.643 回答
2

只需删除 parseint 并让它成为rval=$(a).val();

于 2013-08-22T13:18:23.737 回答
1

您正在使用parseIntwhich 将删除所有十进制值(使其成为 int),parseFloat改为使用它将保留它(从而使其成为浮点数)。

于 2013-08-22T12:34:58.153 回答
1

使用这个 JS:

function amtcal(id)
{    
    var ab="#a"+id;
    var ntwt=parseFloat($(ab).val());
    var a="#"+id;
    var rval=parseFloat($(a).val());
    var product=rval*ntwt;
    var abc="#aa"+id;
    $(abc).val(parseFloat(product).toFixed(2));
} 

这里.toFixed()用于显示小数点后 2 位。

于 2013-08-22T12:39:55.603 回答
-1

我已经更新了 jQuery 代码并在 jsfiddle 中进行了更新。这是更新的jQuery。

function amtcal(id){
    var ab="#a"+id;
    var ntwt=$(ab).val();
    var a="#"+id;
    var rval=$(a).val();
    var product=rval*ntwt;
    var abc="#aa"+id;
   $(abc).val(product);
}
于 2013-08-22T12:42:34.117 回答