删除小数位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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章