删除小数位Jquery / JS

时间:2014-03-24 16:05:40

标签: javascript jquery html

有人可以指出我正确的方向,请删除一个跨越数字的不同长度的小数位,即网站上的产品价格。

£6.9800

以上应该说£6.98

我们有一个网站,其中一些价格需要在4位小数位,例如0.0260英镑,我们有我们的网站设置来显示这个。但我们还有其他不需要的价格,例如:价格高于0.99英镑,1.99英镑,10.99英镑,100.99英镑,1000英镑

有没有办法可以将价格限制在2位小数而不进行任何舍入?

我可以使用JS / Jquery(因为我的CMS让我)。

我尝试过修剪等等,但我似乎无法满足不同长度的数字(我可能只是愚蠢)

我以为我可以使用这样的东西,但我不是百分百肯定:http://www.mredkj.com/javascript/numberFormat.html

3 个答案:

答案 0 :(得分:2)

使用" toFixed"方法。这样:

var f = 1.2345;
f.toFixed( 2 ); 

编辑: 你可以在这个问题中看到Gumbo的答案:Display two decimal places, no rounding

此致 凯文

答案 1 :(得分:0)

假设金额不是字符串:

var f = 1.556;
Math.floor(1.556*100)/100;

答案 2 :(得分:0)

这是一个使用jQuery的例子

假设价格在标签中,

Html

<p>0.0260</p>
<p>0.1260</p>
<p>6.9800</p>
<p>100.99</p>
<p>1.99</p>
<p>10.99</p>
<p>1000.99</p>

<强>脚本

  $.each($("p"),function(){
    var number = parseFloat($(this).text())
    var integerPart = number.toString().split(".")[0] == 0 ? 0: number.toString().split(".")[0].length;
    var decimalPart = number.toString().split(".")[1].length;

    if(decimalPart){
       $(this).text(number.toPrecision(integerPart + decimalPart.length))
    }else{
       $(this).text(number.toPrecision(integerPart + 2))
    }

}) 

Fiddle