我是Javascript的新手,我从这个网站上的另一个Q& A获得了大部分代码,效果很好!唯一的问题是代码不计算小数!如何获取此代码来计算小数?
<table> <tr class=r1>
<th class=d1>1-24</th>
<th class=d2>25-49</th>
<th class=d2>50-99</th>
<th class=d2>100-499</th>
<th class=d2>500 = Offert</th>
<tr class=r1>
<td class=d1 id=A>99,00:-</td>
<td class=d2 id=B></td>
<td class=d2 id=C></td>
<td class=d2 id=D></td>
<td class=d2> </td> </tr>
</table>
这是我必须支付价格的表格。
这是Javascript:
(function(){
// put all your JavaScript in a closure so you don't pollute the global namespace
function extract_float_from_price ( price ) {
return parseFloat( price.replace(/\:*-/,'') );
}
function evaluate_savings ( ) {
var A = extract_float_from_price( $('#A').text() );
$('#B').text( parseInt(A * 0.96 ) + ':-' );
$('#C').text( parseInt(A * 0.92 ) + ':-' );
$('#D').text( parseInt(A * 0.88 ) + ':-' );
}
$( evaluate_savings ); // binds to Dom Ready
})()
请帮我看一下代码,以更准确的价格显示小数。
答案 0 :(得分:0)
在以下语句中使用parseFloat
而不是parseInt
$('#B').text( parseFloat(A * 0.96 ) + ':-' );
$('#C').text( parseFloat(A * 0.92 ) + ':-' );
$('#D').text( parseFloat(A * 0.88 ) + ':-' );
顺便说一句,很高兴有些答案可以帮助你做某些事情,但是你也应该尝试理解代码的作用以及它在使用时的作用。
<强>更新强>:
要使用toFixed对数字进行舍入。 您可能想要这样做:
$('#B').text( parseFloat(A * 0.96 ).toFixed(2) + ':-' );
等等
答案 1 :(得分:0)
要立即学习的东西,以便将来获得更好的回复,这是JavaScript 而不是 Java。它们看起来很相似,但绝不是一样的。互联网上有很多关于差异的讨论。
要回答您的问题,请尝试使用JavaScript函数parseFloat
而不是parseInt
。
答案 2 :(得分:0)
你需要做两件事
parseFloat
,
替换为.
。是javascript中的逗号分隔符。所以,
// get the part of the text that should be parsed
var A = /[\d,.]+/.exec($('#A').text())[0];
// replace any , with .
A = A.replace(",",".")
// parse the string into a Number
A = A.parseFloat(A, 10);
// output the result
$('#B').text( (A * 0.96) + ':-' );
应该适合你