PHP:number_format float to string conversion搜索解决方案的意外行为

时间:2016-10-05 17:26:13

标签: php number-formatting

您好,我想将浮点数格式化为德语符号,如下所示:

  

float(12.0)=> 12

     

float(12.7)=> 12,7

     

float(12.23)=> 12,23

     

float(1234)=> 1.1234

     

float(1234.567)=> 1.234,567

为了达到这个目的,我试图使用number_format(),其小数位数未知:

首先尝试:

number_format($float,0,",",".");

结果没有让人满意:

  

float(12.7)=> 13

接下来尝试:

$tr = rtrim(number_format($float,30,",","."),"0");
if(substr($tr,-1)===USS_DM) {
   return rtrim($tr,USS_DM);
}

结果并非令人满意且出乎意料:

  

float(13.7)=> 13,6999999999999992894572642399

     

预计:13,7

我在这里尝试做的是将float编号格式化为13,7000000000000000000并在必要时修剪尾随零以及之后的小数点。但是由于某些原因,float(13.7)格式化为13.6999 ......等等。

如何格式化数字以获得预期结果?

0 个答案:

没有答案