在PHP中将分数转换为浮点

在PHP中将分数转换为浮点,php,integer,Php,Integer,如何在PHP中将1/4转换为0.25 在表格I中插入编号为1/4。在操作页面中,我得到post变量为1/4。 如何将其转换为0.25。我认为在动作页面中,这是作为字符串获得的。这就是为什么它显示为1/4。但是我需要0.25。我怎么做 主页 <input type="text" name="a" id="a"> 请帮助..一种可能的方法是: 在“操作”页面中,首先分解输入的值,如下所示: $explode = explode('/', $_POST['a']); 然后你就把它们分开

如何在PHP
将1/4转换为0.25

在表格I中插入编号为
1/4
。在
操作页面
中,我得到post变量为
1/4
。 如何将其转换为
0.25
。我认为在动作页面中,这是作为字符串获得的。这就是为什么它显示为
1/4
。但是我需要
0.25。
我怎么做

主页

<input type="text" name="a" id="a">

请帮助..

一种可能的方法是:

在“操作”页面中,首先分解输入的值,如下所示:

$explode = explode('/', $_POST['a']);
然后你就把它们分开:D

$result = $explode[0] / $explode[1];
echo $result; //echoes 0.25
L.E:我认为最好的方法是使用3个输入。一个带第一个数字,一个带操作,一个带第二个数字。在这种情况下,您可以制作一个真正的计算器,并在操作页面中执行如下正常操作:

<?php

    function calculate_string( $mathString )    {
        $mathString = trim($mathString);
        $mathString = str_replace ('[^0-9\+-\*\/\(\) ]', '', $mathString); 

        $compute = create_function("", "return (" . $mathString . ");" );
        return 0 + $compute();
    }

    echo calculate_string("1/4");


?>
在显示页面中:

<input type="text" name="first_no" id="first_no">
<input type="text" name="operation" id="operation">
<input type="text" name="second_no" id="second_no">
L.E2:只是为了好玩,我为您的代码制作了一个只需1个输入的版本

//get index
preg_match("/\D/is", $_POST['a'], $mList, PREG_OFFSET_CAPTURE);
$index = $mList[0][1];

//get operation
$operation = substr($string, $index, 1);

//get numbers
$explode = explode($operation, $string);

//produce result
switch($operation) {
   case '+';
     $result = $explode[0] + $explode[1];
     break;
   case '-';
     $result = $explode[0] - $explode[1];
     break;
   case '*';
     $result = $explode[0] * $explode[1];
     break;
   case '/';
     $result = $explode[0] / $explode[1];
     break;
  //and so on... if you need more
}

echo $result;

希望这有帮助:D

您可以使用以下功能:

<?php

    function calculate_string( $mathString )    {
        $mathString = trim($mathString);
        $mathString = str_replace ('[^0-9\+-\*\/\(\) ]', '', $mathString); 

        $compute = create_function("", "return (" . $mathString . ");" );
        return 0 + $compute();
    }

    echo calculate_string("1/4");


?>

你可以在这里使用eval,但要小心!如果您没有正确地转义输入,那么直接将$\u POST stuff解析为eval将使您的脚本对您的Web服务器极其危险

如果你确定你会得到1/4或1/2的值,这就可以了:

echo eval("return ".$_POST['a'].";");
但正如我所说。小心这个 如果有人想要一些不好的东西,他可以在你的输入中输入
exec('init 0')
,如果你的Web服务器获得了这样做的许可,你的服务器将关闭(这只是对不安全评估的无数漏洞之一),所以我请你耐心等待

第二种方法是将数字拆分并进行除法。但这肯定会有很多格式问题


问候语

使用
eval()
通常是不好的。在用户提供的数据上使用
eval()
肯定是不好的。检查我的答案,我提供了一些很好的方法来解决您的问题;)请特别查看我对您的代码的建议,并仔细查看最新版本
0.25
echo eval("return ".$_POST['a'].";");