Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP字符串中的浮点值_Php - Fatal编程技术网

PHP字符串中的浮点值

PHP字符串中的浮点值,php,Php,我有一个html表单(这是一个商店的收据表单),它包含大约100个文本框,用户需要输入一个浮点值或“20.2*33.4”的形式。表单将提交到php页面。我想确保每个文本框都包含相同的模式,然后我想计算文本中的乘法 我想知道如何检查字符串的格式是否为“float*float” 请帮忙。谢谢这是不可能的,你唯一可以使用的功能是eval,但在表单中这样使用是非常危险的 如果要计算表达式,则需要创建自己的语言(使用解析器、lexer等) 所以这是不可能的。你可以看看这里 编辑:如果它只是一个简单的乘法,

我有一个html表单(这是一个商店的收据表单),它包含大约100个文本框,用户需要输入一个浮点值“20.2*33.4”的形式。表单将提交到php页面。我想确保每个文本框都包含相同的模式,然后我想计算文本中的乘法

我想知道如何检查字符串的格式是否为“float*float”


请帮忙。谢谢

这是不可能的,你唯一可以使用的功能是eval,但在表单中这样使用是非常危险的

如果要计算表达式,则需要创建自己的语言(使用解析器、lexer等)

所以这是不可能的。你可以看看这里


编辑:如果它只是一个简单的乘法,总是两个部分,你可以按照上面的注释分解它。

你可以使用正则表达式检查格式,然后解析出数字和运算符,然后进行计算

$total = 0;
$string = '20.2*33.4';
if(preg_match('/^(\d*\.?\d+)(?:\*)(\d*\.?\d+)$/', $string, $matches) === 1){
    $total = floatval($matches[1]) * floatval($matches[2]);
}

演示:

什么样的帮助?您尝试过什么?您正在构建软件,而您的用户仍在使用公式。如何:Box(操作员选择器)Box。或者在*上分解得到的2个变量。我尝试过使用eval,但了解到使用eval是有风险的,因为它会执行字符串,所以确保字符串的格式是正确的吗?检查字符串是否为该格式的最佳方法是什么?可能的,在*倍数上爆炸2个变量你给出了问题的多种解决方案,但说这是不可能的?事实上,我发现它确实提供了一个答案,链接只是提供了更多的细节。