Can';在PHP-Laravel5.2中将字符串转换为浮点
我有一个带值的隐藏字段。因为它是一个隐藏字段,所以我的值是一个字符串。在我的数据库中,该值存储为精度为2点的十进制字段 查看Can';在PHP-Laravel5.2中将字符串转换为浮点,php,laravel,type-conversion,laravel-5.2,Php,Laravel,Type Conversion,Laravel 5.2,我有一个带值的隐藏字段。因为它是一个隐藏字段,所以我的值是一个字符串。在我的数据库中,该值存储为精度为2点的十进制字段 查看 <tr class="grand-total"> <th>Total incl. 21% BTW:</th> <?php $total = number_format($cartTotal, 2, ',', '') ?> <td><strong class="grey-color">
<tr class="grand-total">
<th>Total incl. 21% BTW:</th>
<?php $total = number_format($cartTotal, 2, ',', '') ?>
<td><strong class="grey-color">€{{$total}}</strong></td>
</tr>
<input type="hidden" name="total" value={{$total}}>
但这些都是10欧元的回报 您必须提供一个浮点数,该浮点数使用一个点来分隔整数和小数,而不是逗号,因此您必须输入
10.95
,而不是10,95
显然,如果仍要使用逗号,可以使用str_replace:
$myNumber = floatval(str_replace(',', '.', $myNumber));
虽然这并不能直接回答这个问题,但它确实能以更长远的方式解决这个问题 考虑存储不带小数的金额-因此,
$10.00
实际上作为1000
存储在数据库中
您还可以在PHP中使用内置函数,例如设置本地货币以解决这个问题
您的总数是
10,95
或10.95
?10,95
是无效名称。已更改为10.95
,作为唯一有效读数。编辑挂起。这是一个很好的答案。我在构建我的应用程序时考虑过这一点。但我没有这么做,因为我的计算会很复杂。但也许下次应该试试。我认为计算越复杂,你应该离浮动越远,就我的2美分(请原谅这个双关语)
$myNumber = floatval(str_replace(',', '.', $myNumber));