Php 将带逗号的字符串强制转换为带点的浮点

Php 将带逗号的字符串强制转换为带点的浮点,php,casting,floating-point,Php,Casting,Floating Point,当我试着投 $value = floatval('14,5833'); 对于float类型,我希望得到一个点为14.5833的值,但它返回145833 我该怎么做 我不想使用任何字符串替换函数。从和检查小数点。从和检查小数点您有两个选项: 将locale设置为使用点而不是昏迷的内容。例如,setLocaleLC_ALL,“fr_BE.UTF-8”; 在内部继续使用逗号,如果要输出该数字,请使用 您有两个选择: 将locale设置为使用点而不是昏迷的内容。例如,setLocaleLC_ALL,“

当我试着投

$value = floatval('14,5833');
对于float类型,我希望得到一个点为14.5833的值,但它返回145833

我该怎么做

我不想使用任何字符串替换函数。

从和检查小数点。

从和检查小数点您有两个选项:

将locale设置为使用点而不是昏迷的内容。例如,setLocaleLC_ALL,“fr_BE.UTF-8”; 在内部继续使用逗号,如果要输出该数字,请使用 您有两个选择:

将locale设置为使用点而不是昏迷的内容。例如,setLocaleLC_ALL,“fr_BE.UTF-8”; 在内部继续使用逗号,如果要输出该数字,请使用
一个例子对我很有帮助:

<?php
setlocale(LC_NUMERIC, 'en_US');
echo 1.234; // 1.234
setlocale(LC_NUMERIC, 'et_EE.UTF-8');
echo 1.234; // 1,234
echo number_format( 1.234, 2, '.', '' ); // 1.23 
?>

一个例子对我很有帮助:

<?php
setlocale(LC_NUMERIC, 'en_US');
echo 1.234; // 1.234
setlocale(LC_NUMERIC, 'et_EE.UTF-8');
echo 1.234; // 1,234
echo number_format( 1.234, 2, '.', '' ); // 1.23 
?>

请注意,数字_格式将对值进行四舍五入。所以像2.3456这样的东西将被格式化为2.35,而不是2.34。这对我来说永远不会转换为1234,但在使用ubuntu 14.04和默认php PHP5.5.9-1ubuntu4.11时总是1.234。看起来在ubuntu区域设置上必须显式安装,比如$sudo apt get install language-pack-et-base。注意,数字\格式将舍入该值。因此,类似2.3456的内容将被格式化为2.35而不是2.34。这对我来说永远不会转换为1234,但在使用ubuntu 14.04和默认php PHP5.5.9-1ubuntu4.11时,总是1.234。看起来在ubuntu区域设置上必须显式安装,比如$sudo apt get install language pack et base。