【问题标题】:How to convert string operation into a number?如何将字符串操作转换为数字?
【发布时间】:2015-05-07 04:50:05
【问题描述】:

我有一个 string '1/2',我需要从中获取 float0.5

其他示例: 操作:$operation = '5/8'; 通缉值:$value = 0.625;

【问题讨论】:

标签: php


【解决方案1】:

已编辑。 不优雅,因为使用了eval,但可以正常工作。

$operation = '1/2';

function stringCalc($operation){

    return eval('return '.$operation.';');
}

$value = stringCalc($operation);

【讨论】:

【解决方案2】:

您可以使用eval,也请注意您不是在寻找int,因为它们是整数。

<?php

$operation = '1/2';

eval('$value = ' . $operation . ';');

echo $value;

?>

【讨论】:

  • evil() 不是一个好主意,因为当输入来自用户时,他可以执行他想要的每个 php 代码!
  • @Rizier123 我同意,但 OP 并未声明输入来自用户。
  • 但这总是存在安全风险!当您不使用它时,您确定它不能用于坏事。据我所知,你真正需要使用它的地方并不多
  • @Rizier123 这不是来自用户。我是从 DB 那里得到的。
  • @IlliaPotapchuk 来自数据库,您在其中插入哪些数据?用户输入/数据?!
【解决方案3】:

如果您只有一个“/”,这将有效。

$str = '2/5';
$newStr = explode('/', $str);
echo $newStr[0]/$newStr[1];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多