PHP编号:仅在需要时可见小数点

vit*_*tto 57 php string automation integer

我想知道是否存在一些函数来自动格式化一个数字的小数,所以如果我有:

<?php
    // $sql_result["col_number"] == 1,455.75
    number_format ($sql_result["col_number"], 2, ".", "");
    // will return 1455.75

    // $sql_result["col_number"] == 1,455.00
    number_format ($sql_result["col_number"], 2, ".", "");
    // could I get 1455 instead of 1455.00?
?>
Run Code Online (Sandbox Code Playgroud)

所以我的答案是,如果我的DB中只有DECIMAL数据格式,那么如果确实存在一些删除小数的方法吗?

或者我应该做那样的事情?

<?php
    // $sql_result["col_number"] == 1,455.00
    str_replace(".00", "", (string)number_format ($sql_result["col_number"], 2, ".", ""));
    // will return 1455
?>
Run Code Online (Sandbox Code Playgroud)

小智 27

floatval或简单地转换为浮动

php > echo floatval(7.00);
7
php > echo floatval(2.30);
2.3
php > echo floatval(1.25);
1.25
php > echo floatval(1.125);
1.125

php > echo (float) 7.00;
7
php > echo (float) 2.30;
2.3
php > echo (float) 1.25;
1.25
php > echo (float) 1.125;
1.125
Run Code Online (Sandbox Code Playgroud)

  • 任何想要将其应用于字符串的人都应该注意使用逗号"1,000.99"的值.浮动此值将返回1. (4认同)
  • 铸造浮动是迄今为止最好的选择 (2认同)

Emi*_*l H 15

我实际上认为你的解决方法和任何方法一样好.它简单明了,在这里谈论性能真的没有意义,所以就去吧.

  • 您只需添加0`1455.00 + 0` http://stackoverflow.com/questions/14531679/remove-useless-zero-digits-from-decimals-in-php (7认同)

Hal*_*gür 9

正如埃米尔说你的好.但是,如果你想删除0从如7.50过,我有一个建议,rtrim():

<?php
    // if $sql_result["col_number"] == 1,455.50
    rtrim(rtrim(number_format($sql_result["col_number"], 2, ".", ""), '0'), '.');
    // will return 1455.5
?>
Run Code Online (Sandbox Code Playgroud)

  • 我认为在这种情况下使用 `rtrim` 会出现错误,例如,`rtrim('1230.00','0.');` 将给出 123 而不是 1230。 (4认同)

vit*_*tto 7

我添加文章删除PHP中小数的无用零位数作为一种更好的方法来清除没有松散小数的值,如果需要的话.


Dan*_*lle 6

您还可以使用rtrim()来删除多余的0,如果您想保留一位小数而不是多余的零。(例如,4.50变为4.5。)还允许您将小数位数从2更改为任何其他数字。

rtrim(rtrim((string)number_format($value, 2, ".", ""),"0"),".");

// 4.00 -> 4
// 4.50 -> 4.5
// 4.54000000 -> 4.54 (if you're doing more decimal places)
Run Code Online (Sandbox Code Playgroud)

  • 这似乎对我来说将 10400.00 等数字修剪为 104 (2认同)

Tom*_*mas 5

实际上,我认为对于刚刚搜索此类内容的人来说,我能想到的最干净的方法就是这样做:

( number_format ($sql_result["col_number"], 2) * 100 ) / 100;
Run Code Online (Sandbox Code Playgroud)