删除小数位Jquery / JS [重复]

Posted

技术标签:

【中文标题】删除小数位Jquery / JS [重复]【英文标题】:remove decimal places Jquery/JS [duplicate] 【发布时间】:2014-05-02 02:45:56 【问题描述】:

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

6.9800 英镑

上面应该是6.98英镑

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

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

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

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

我认为我可以使用这样的东西,但我不是 100% 确定:http://www.mredkj.com/javascript/numberFormat.html

【问题讨论】:

【参考方案1】:

使用“toFixed”方法。这样:

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

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

问候, 凯文

【讨论】:

without any rounding , 1.556.toFixed(2); // "1.56"toFixed 回合【参考方案2】:

假设金额不是字符串:

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

【讨论】:

【参考方案3】:

这是一个使用 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

【讨论】:

非常感谢 - 如果数字是跨度内的 html 值,请使用货币符号,如何编辑?即 0.0260 英镑 @user3456188 看看我刚刚删除的这个小提琴,并从跨度的文本jsfiddle.net/dH8S9/3添加了货币符号@ 感谢您的帮助,但 0.0260 英镑仍然如此 - 应该是 0.026 英镑,6.9800 英镑应该是 6.98 英镑 - 非常感谢 @user3456188 一些错误抱歉jsfiddle.net/dH8S9/4 非常感谢 - 我正在努力解决的最后一个调整是如何处理诸如 1.00000 英镑或 1.1000 英镑之类的数字 - 使其分别为 1.00 英镑和 1.10 英镑?

以上是关于删除小数位Jquery / JS [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JS删除由库添加的事件侦听器[重复]

从Android中的字符串中删除小数点和数字[重复]

jquery如何去除表中重复的数据

jquery删除多个类[重复]

jQuery - 从字符串数组中删除重复项[重复]

jQuery删除多种样式[重复]