在PHP中将分数转换为浮点
如何在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']); 然后你就把它们分开
将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'].";");