浮点数格式

Ali*_*iBZ 7 php floating-point number-formatting

我想number_format在PHP中使用函数.例如:

$number = 234.51;
echo number_format($number,2);
Run Code Online (Sandbox Code Playgroud)

这适用于浮点数,但我想将它用于不同的数字.如果数字是十进制且没有任何浮点数,则显示如下:145.00.我怎样才能解决这个问题?我的意思是我想根据需要显示尽可能多的浮点数,而不是更多.

pav*_*ium 11

调查printfsprintf功能而不是number_format.

它们可以根据需要格式化数字.

printf("%d", $int) 
Run Code Online (Sandbox Code Playgroud)

适用于十进制整数.

printf("%4.2f", $float) 
Run Code Online (Sandbox Code Playgroud)

适用于带有两位小数的浮点数.

number_format 似乎是用于货币输出的国际化,但我不认为这是你想要的,因为你提到了小数"整数".


Ali*_*iBZ 7

我想我无法从number_format得到我想要的东西,所以我做了这个并且它工作正常:

 public function floatNumber($number)
 {
      $number_array = explode('.', $number);
      $left = $number_array[0];
      $right = $number_array[1];
      return number_format($number, strlen($right));
 }
Run Code Online (Sandbox Code Playgroud)

thanx all for your replies.

  • 你可以缩短它并写:`list($ left,$ right)= explode('.',$ number,2);`. (2认同)