Can';在PHP-Laravel5.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">

我有一个带值的隐藏字段。因为它是一个隐藏字段,所以我的值是一个字符串。在我的数据库中,该值存储为精度为2点的十进制字段

查看

<tr class="grand-total">
   <th>Total incl. 21% BTW:</th>
   <?php $total = number_format($cartTotal, 2, ',', '') ?>
    <td><strong class="grey-color">&euro;{{$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));