Php 使用sprintf更改数字格式

Php 使用sprintf更改数字格式,php,formatting,printf,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 但对于“

我有如下价值观:

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的值?

您可以在rtrim的arugument中的0前面加一个点

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

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

brixenDK的纠正方案:

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

用适当的语言标记你的问题。这是PHP吗?是的,这是PHP。已添加标记。谢谢你,搅拌机