Javascript数学不起作用

时间:2011-01-03 16:26:35

标签: javascript

这是我的Javascript:

var total = $(this).text();
var calc = total * 100;
var paid = calc * 0.333;

HTML很简单:

<div class="price"><span>£0.21</span></div>

如何从字符串中删除'£'字符,以便我可以进行数学计算?

7 个答案:

答案 0 :(得分:4)

这将删除字符串中不是数字或小数点的所有字符。

var total = $(this).text().replace(/[^\d.]/g,'');
var calc = total * 100;
var paid = calc * 0.333;

如果有任何逗号分隔符也很有用。

*将处理来自String的转换。如果您想要更明确的内容,可以使用一元+运算符。

var total = +($(this).text().replace(/[^\d.]/g,'')); // <-- has + at beginning
var calc = total * 100;
var paid = calc * 0.333;

答案 1 :(得分:1)

您需要slice字符串才能删除'£':

var total = $(this).text().slice(1);

答案 2 :(得分:1)

如果你的字符串开头总是有一个'£'符号,你可以在分配总数之前使用一个子字符串(这次将正确地从字符串转换为数字)。

您还可以依赖正则表达式,例如

/[-+]?[0-9]*\.?[0-9]*/

干杯,

-stan

答案 3 :(得分:1)

  1. 使用slice()substr()substring()来删除您需要的部分
  2. 在使用您的号码进行计算之前使用parseFloeat()parseInt(),以确保 是一个数字

答案 4 :(得分:0)

查看parseFloat功能。

编辑:哎呀,我打算写parseFloat;几点差异。

答案 5 :(得分:0)

使用SubStr从第二个字符(#1)进行复制。使用parseFloat转换为float。

var total = $(this).text().substr(1).parseFloat();
var calc = total * 100;
var paid = calc * 0.333;

答案 6 :(得分:0)

parseint是错的..它将是parsefloat ......

但你需要在parsefloat之前删除第一个char,否则它将返回NaN(不是数字)

var total = "£0.21";
total = total.substring(1);
total = parseFloat(total);
var calc = total * 100; 
var paid = calc * 0.333; 
alert(paid);