我要从此数组返回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,而不是字符串返回。
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)-这还会返回一个字符串,但格式像是钱。