使用sprintf更改数字格式

时间:2013-09-27 22:05:37

标签: php formatting printf

我的价值观如下:

0.00000001
1.49000000

主要目标是在页面上显示0.00000001而不是1E8。

这是我的代码:

function correct_amount($amount) {
    $corrected=rtrim(sprintf('%.8F', $amount), '0');
    return $corrected;
}

这种方法很完美,但仅限于这种情况:

1.92940000 -> 1.9294
1.04000000 -> 1.04

但是对于'整数',我有以下结果:

1.00000000 -> 1.
15.00000000  -> 15.

如何更改代码以获取没有点或.00的值?

2 个答案:

答案 0 :(得分:0)

你可以在rtrim的参数中的0之前加一个点。

function correct_amount($amount){
     $corrected = rtrim(sprintf('%.8F', $amount),'.0');
     return $corrected;
}

答案 1 :(得分:0)

brixenDK的回答几乎是好的。它有一个错误,因为rtrim单独使用模式中的所有字符。 1000将是1。

brixenDK的纠正解决方案:

function correct_amount($amount){
     $corrected = rtrim(rtrim(sprintf('%.8F', $amount),'0'),'.');
     return $corrected;
}