繁体   English   中英

在 PHP 中将值转换为 FLOAT 会丢失小数点。 基本上将值转换为 INT

[英]Casting a value into FLOAT in PHP loses the decimal points. Basically turning the value into an INT

我正在调用 PHP 表单,浮点值被正确接收,但如果我将其转换为 FLOAT,或者之后立即,该值会丢失所有小数点数字,我不希望那样。 我尝试使用 floatval 但结果相同。

//code

$time_in_seconds = $_POST["time_in_seconds"];//form value is 1.23f

echo $time_in_seconds;//echo 1.23

$time_in_seconds = (float)$time_in_seconds;

echo $time_in_seconds;//echo 1

您可能正在使用逗号,而不是指向单独的小数。

"1,23" (将被转换为1 )与"1.23" (将被转换为1.23 )不同

在您的机器上安装正确的区域设置。 可能您已经安装了 IT(意大利)语言环境文件,并且有,作为小数分隔符,因此强制转换不会“看到”您传递给它的浮点数。

setlocale(LC_ALL, 'en-US.utf8');

但是在代码中输入这一行是不够的。 您还必须安装语言环境文件。 更多信息: PHP setlocale 无效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM