【问题标题】:PHP multiplicationPHP 乘法
【发布时间】:2012-05-16 09:53:54
【问题描述】:

这是我的第一个问题,大家好..

能满足这个条件吗? 其中 $a 和 $b 是一些已定义的变量

if(!is_numeric($a * $b.'')) { ... }

编辑:第二个条件

$a * $b can't be INF

【问题讨论】:

  • 你到底想做什么?
  • 我需要它来完成一些任务,但我不知道该怎么做.. IMO 这是不可能的
  • 嗯 * 的优先级高于 .所以我希望执行乘法然后将 '' 附加到结果应该强制结果数据类型为字符串......但结果的值仍然是数字(除非 $a 和 $b 是太大,结果是无穷大......在这种情况下,我认为结果条件将是非数字的)
  • @non 在将其作为问题发布之前,您应该尝试过 this
  • 马克贝克:好的 :) 如果我再添加一个条件? Jeroen: 没什么.. 只是条件,我必须设置 $a 和 $b..

标签: php string multiplication


【解决方案1】:

您可以使用$a$b 的特定值来满足条件。例如,$a = $b = 1e200$a = 1e400, $b = 0

如果$a$b 的乘积溢出到无穷大或者是非数字,则与空字符串连接将产生字符串INFNAN

php > var_export(1e200*1e200);
INF
php > var_export(is_numeric(1e200*1e200));
true
php > var_export(is_numeric(1e200*1e200.''));
false

php > var_export(1e400*0);
NAN
php > var_export(is_numeric(1e400*0));
true
php > var_export(is_numeric(1e400*0 .''));
false

【讨论】:

    【解决方案2】:

    使用 32 位 PHP 测试

    $a = 9.9E300;
    $b = 9.9E300;
    
    if(!is_numeric($a * $b.'')) {
        echo 'non-numeric';
    } else {
        echo 'numeric';
    }
    

    【讨论】:

    • 嗯,我没想到。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2016-07-31
    • 1970-01-01
    相关资源
    最近更新 更多