0

这是代码:

function wpTrimZeroRight(price, precision) {
var format = {
    'pattern': '%s',
    'precision': precision,
    'requiredPrecision': precision,
    'decimalSymbol': '.',
    'groupSymbol': '',
    'groupLength': 0,
    'integerRequired': 2
};
var xPrice = formatCurrency(price, format);
var decimal = '';
var pointPos = xPrice.lastIndexOf('.');
if (pointPos !== -1) decimal = xPrice.substr(pointPos);
var c1 = decimal.length;
decimal = decimal.replace(new RegExp("[0]+$", "g"), "");
var c2 = decimal.length;
var xPrecision = precision - (c1 - c2);
return xPrecision;

这段代码取自 webandpeople trim price extension。它可以完成这项工作,但在可配置和捆绑产品中修剪所有零;因此,当产品页面上的类别页面上的价格看起来像 £11.50 时,看起来像 £11.5。这个想法是在任何地方都有两个十进制数字,例如产品价格为 0.012 英镑的地方除外。我已经对代码进行了一些修改,并且更改了 (new RegExp("[0]+$", "g"), ""); to (new RegExp("00", "g"), "0") 这给了我一些产品的 28.990 英镑,但其他产品的正确金额为 55.50 英镑。我认为缺少 if 语句,但我没有想到任何有意义的东西。我已经花了几个小时在这里和其他与 magento 相关的网站上寻找答案。我会很感激任何想法。

4

2 回答 2

0

为什么你需要削减价格。我认为magento会自动做到这一点。

使用像 Mage::helper('core')->currency($price, true, false); 这样的代码 无论您在哪里获得价格。我想你会以格式化的方式得到价格

于 2013-04-29T12:18:00.857 回答
0

Javascript Number.toFixed 方法是您正在寻找的。(12.5001).toFixed(2) --> 12.50

于 2013-04-29T11:28:50.190 回答