JS或PHP将前导零添加到小数


JS or PHP Add Leading Zero to Decimals

我有一个表单,我正在尝试在一些输入字段中自动强制使用小数。基本上,我希望用户不用担心格式,只需在Blur上设置字段格式即可。

以下是我希望实现的几个例子:

1.)如果用户输入"0.95",则不会执行任何操作,因为这是我最终要使用的最终格式。

2.)如果用户输入".95",我希望Blur上的字段更改为上面的格式"0.95"。(同样,如果他们输入".9"等)

我整晚都在网上搜寻解决方案,所以这是我的最后手段!我能得到的任何帮助和反馈都将不胜感激!

谢谢!

这样的东西可以做到:

document.getElementById('amount').onblur = function() {
    if(this.value && !isNaN(this.value)) {        
        this.value = parseFloat(this.value).toFixed(2);
    } else {
        this.value = 0;
    }
};

jsFiddle

这很好也很简洁:

function blurFormatDecimal (e) {
    var val = isFinite(this.value) ? +this.value : 0;
    this.value = val.toFixed(2);
}
myInput.onblur = blurFormatDecimal;

使用isFinite()而不是!isNaN(),因为isNaN("Infinity")返回false,但您肯定不希望接受"Infinity"作为有效输入。

http://jsfiddle.net/gilly3/NjeQD/

如果您需要使用PHP执行此操作,请尝试:$formattedAmount = sprintf("%05.2f",$amount);

以下是php解决方案:

$formattedAmount = sprintf("%01.2f",$amount);