【问题标题】:How to convert php variable to float, after it was obtained by javascript? Php's (float) casting function is returning 0 and not convertingphp变量通过javascript获取后如何转换为float? Php 的 (float) 转换函数返回 0 并且不转换
【发布时间】:2020-01-16 05:02:01
【问题描述】:

我将从用户的 onclick javascript 中获取 jsvariable。用户将输入他们在 $xx.xx 金额中花费的金额。它将以字符串形式出现。我需要计算金额,所以我需要它作为浮点数。

我以字符串为例。我将它从 javascript 中提取到一个 php 字符串变量中:

<script> var jsvariable = "2.25"; </script> 

<?php $x = "<script>document.writeln(jsvariable);</script>";
 echo $x;  var_dump($x); ?>

echo $x 显示 2.25。 var_dump 显示 $x 是一个字符串(38)“2.25” 所以它现在在 php 中显示 $x 变量是一个 38 个字符的字符串,但它只包含 5 个字符。

然后我尝试使用 settype 函数对其进行转换。也尝试重新铸造它。它没有转换它。

<?php 
settype($x, "float"); 
echo "After settype x is "; echo $x; var_dump($x);

$y = (float)$x ; 
echo " y cast y is "; echo $y; var_dump ($y);
?>

settype x 为 0 后 float(0)

投射后 y 为 0 float(0)

如何将 $x 字符串转换为正确值为 2.25 的浮点数?

【问题讨论】:

  • 我跳过检索代码的部分原因是虽然我有一个好的开始,但我还没有完全解决它。还因为即使我学习了一种更好的方法来做到这一点,例如让 js 以数字形式读取的方法.... settype 并没有像我预期的那样工作,这让我很烦恼。
  • $x 是一个带有 HTML 标签的字符串,虽然它会将 2.25 回显到浏览器,但尝试将其转换为浮点数会失败。
  • 当 $x = "" 时,那么 $x 永远不会是“2.25”并且不能转换为 2.25 的浮点数。它是 1,因为将 true 转换为数字将导致 1。
  • 我如何将 html 标签串起来,并将 $x 变成可以转换为数字的字符串?
  • 您阅读过文档吗? settype Returns TRUE on success or FALSE on failure

标签: javascript php type-conversion optionsettype


【解决方案1】:

只需像这样投射:$y = (float)$x。您可能想查看type juggelingString conversion to numbers

【讨论】:

  • $y = (float)$x ;将 $y 设置为 0。它加得很好,所以它是一个数字。但它仍然不是 2.25。感谢您的链接。我会读的。
  • 我刚刚测试过。它将 javascript 获得的字符串转换为布尔值。而不是浮动。
猜你喜欢
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多