数学货币/字符串与美元符号

时间:2012-12-11 00:34:22

标签: javascript math currency

是否有可能有一个字符串,如$10.50并在javascript中对其进行数学运算?我在这个网站上找不到答案。

JSFIDDLE

HTML:

<p id="cost">$10.50</p>
---
<div id="output"></div>

JavaScript的:

$('#output').html($('#cost').html() / 2);​

输出:

NaN

4 个答案:

答案 0 :(得分:1)

你可以在上面做数学如果你使用剥离美元符号;由于它通常位于第一个位置,因此您只需对字符串值使用.substring(1)

$('#output').html($('#cost').html().substring(1) / 2);​

答案 1 :(得分:0)

你可以这样做:

<p id="cost" data-value="1050" data-currency="$">$10.50</p>
---
<div id="output"></div>


var el = $("#cost");
$('#output').html( el.data("currency") + (el.data("value") / 2 / 100));​

http://jsfiddle.net/QkCyM/5/

答案 2 :(得分:0)

不,但为什么不将'$'分开:

<p>$<span id="cost">10.50</span></p>

或者您必须解析字符串并删除'$“

答案 3 :(得分:0)

没有。你不能对字符串做数学。如果你这样做,JavaScript会尝试隐式类型转换,但对于不以数字开头的字符串会失败 - 导致NaN

首先,剥去美元符号(例如.slice(1)),然后使用parseFloat获取数字。现在进行划分,然后使用.toFixed(2)将其转换回字符串进行输出。更新了小提琴:http://jsfiddle.net/QkCyM/7/

不要忘记What Every Programmer Should Know About Floating-Point Arithmetic