将美分转换为美元和 return 浮点值

Convert cents to dollars and return a floating point value

我有一个 PHP 应用程序,我希望将美分转换为美元。 return 值应为 float 类型,具有两位小数精度。这是我当前的功能:

function centsToDollars(int $cents)
{
  return number_format(($cents/100), 2, '.', ',');
} 

number_format return 值的类型为 string。它通过了这个PHP单元测试:

/** @test */
public function it_should_convert_cents_to_dollars()
{
   $centAmount = 10532399; 
   $dollarAmount = centsToDollars($centAmount);

   $this->assertEquals("105,323.99", $dollarAmount);
}

我希望它通过的测试如下:

/** @test */
public function it_should_convert_cents_to_dollars()
{
    $centAmount = 10532399; 
    $dollarAmount = centsToDollars($centAmount);

    $this->assertEquals(105323.99, $dollarAmount);
}

是否有我可以用于我的函数的转换或我可以用来使第二次测试通过的不同函数?

如果将千位分隔符设置为空字符串并将响应转换为浮点数,它应该可以工作。

return (float)number_format(($cents/100), 2, '.', '');

使用千位分隔符,结果将不是真正的数值,您将无法将其正确转换为一个。

演示:https://3v4l.org/qAa1v