【问题标题】:How to convert NAN to 0 in php如何在php中将NAN转换为0
【发布时间】:2020-02-08 05:50:07
【问题描述】:

我正在计算数据库表中值的百分比,但是,当没有值时,函数返回 NAN,我希望函数返回 0,我正在使用的函数是:

function calculate_percentages($atts){         
    global $wpdb;
    $postid = get_the_ID();
    $myrate_name = "sql_table_name";
    $total_count = $wpdb->get_var( "SELECT SUM(rates) FROM $myrate_name WHERE post_id=$postid");
    $top = $wpdb->get_var( "SELECT SUM(rates) FROM $myrate_name WHERE  rating = 5 AND post_id=$postid");
    $top_avarage = round($top/$total_count*100);
    return $top_avarage;

【问题讨论】:

  • 您的查询返回一个字符串? $total_count$top 的值是多少?
  • 你可以试试$top_avarage = $top_avarage == „NaN“ ? 0 : $top_avarage;
  • 不,不要使用„“
  • 但实际上,您的服务器是如何配置的以使警告不显示? :s sandbox.onlinephpfunctions.com/code/…

标签: php sql nan


【解决方案1】:

你得到NAN,因为$total_count0 或等于0 的东西,你不能除以0。所以检查它是否是0,如果是,则将结果设置为0,如果不是,则进行计算:

$top_average = $total_count != 0 ? round($top/$total_count*100) : 0;

【讨论】:

    【解决方案2】:

    你有一个可以使用的php函数is_nan

    $top_average = !is_nan($top/$total_count*100) ? round($top/$total_count*100) : 0;
    

    【讨论】:

    • is_nan 时不应该将$top_average 设置为零?
    • 警告:除以零
    猜你喜欢
    • 2013-04-26
    • 2011-11-24
    • 1970-01-01
    • 2018-03-07
    • 2013-01-21
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多