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)
Emi*_*l H 15
我实际上认为你的解决方法和任何方法一样好.它简单明了,在这里谈论性能真的没有意义,所以就去吧.
正如埃米尔说你的好.但是,如果你想删除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()来删除多余的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)
实际上,我认为对于刚刚搜索此类内容的人来说,我能想到的最干净的方法就是这样做:
( number_format ($sql_result["col_number"], 2) * 100 ) / 100;
Run Code Online (Sandbox Code Playgroud)