将价格作为字符串而不是浮点数的方法

bur*_*wel 1 php

我要从此数组返回JSON,但是的值total是字符串格式-不是浮点型。不知道我在做什么错。

这是数组,最后有一个字符串:

return [ 
    'cart' => [
        'total'  => amount($cart->total)
    ]
]
Run Code Online (Sandbox Code Playgroud)

这是amount辅助方法,问题出在哪里:

function amount($money)
{
    return number_format(floatval($money), 2);
}
Run Code Online (Sandbox Code Playgroud)

我期望从total,而不是字符串返回。

zbe*_*bee 5

number_format 返回一个字符串。

在您的情况下,您可能要传递一个值,例如3.15在这种情况下,字符串似乎是一个奇数输出。但是,如果您传递了一个类似的值311583249,则会看到为什么会这样:number_format(311583249)return "311,583,249"

每次都返回一个字符串以保持连续性。如果在整数小于1000时返回整数,在部分数字小于1000时返回浮点数,那么将难以说明总体,而不能满足具有的确切目的number_format-因此字符串始终由返回number_format

您可能正在寻找的是round(X, 2);这将返回精度为2的浮点数。或者也许您正在寻找money_format('%i', X)-这还会返回一个字符串,但格式像是钱。