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

JS或PHP将前导零添加到小数,php,javascript,formatting,decimal,Php,Javascript,Formatting,Decimal,我有一个表单,我试图在一些输入字段中自动强制使用小数。基本上,我希望用户不必担心格式问题,只需将字段本身格式化为onBlur即可 以下是我希望实现的几个例子: 1.)如果用户输入“0.95”,则不会执行任何操作,因为这是我最终选择的最终格式 2.)如果用户输入“.95”,我希望onBlur字段更改为上述格式“0.95”。(同样,如果他们输入“.9”等) 我整晚都在互联网上寻找解决方案,所以这是我最后的选择!如果我能得到任何帮助和反馈,我将不胜感激 谢谢大家! 像这样的东西可以做到: docume

我有一个表单,我试图在一些输入字段中自动强制使用小数。基本上,我希望用户不必担心格式问题,只需将字段本身格式化为onBlur即可

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

1.)如果用户输入“0.95”,则不会执行任何操作,因为这是我最终选择的最终格式

2.)如果用户输入“.95”,我希望onBlur字段更改为上述格式“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;
    }
};

像这样的东西可以做到:

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

这很好,也很简洁:

function blurFormatDecimal (e) {
    var val = isFinite(this.value) ? +this.value : 0;
    this.value = val.toFixed(2);
}
myInput.onblur = blurFormatDecimal;
使用
isFinite()
而不是
!isNaN()
因为
isNaN(“无穷大”)
返回
false
,但您肯定不想接受
“无穷大”
作为有效输入


这很好,也很简洁:

function blurFormatDecimal (e) {
    var val = isFinite(this.value) ? +this.value : 0;
    this.value = val.toFixed(2);
}
myInput.onblur = blurFormatDecimal;
使用
isFinite()
而不是
!isNaN()
因为
isNaN(“无穷大”)
返回
false
,但您肯定不想接受
“无穷大”
作为有效输入


以下是php解决方案:

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

以下是php解决方案:

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

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

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

返回
“无穷大”
。并返回与不一致的
“0.00”
(返回
“0”
,不带任何小数点)。返回
“无穷大”
。并返回
“0.00”
,这与不一致(返回
“0”
,没有任何小数点)。谢谢gilly!!成功了!与飞行的颜色。我很感激!谢谢吉莉!!成功了!与飞行的颜色。我很感激!