【问题标题】:Zero before comma in decimal numbers十进制数字中逗号前的零
【发布时间】:2012-04-18 20:55:17
【问题描述】:

我有这个关于从 oracle 到 php 的十进制数的问题。如果我在 oracle 上有“0,7”,例如,当我在 php 上使用它时,它将是“,7”,没有零。

有人知道为什么吗?以及可能的解决方案?谢谢!

【问题讨论】:

  • 这是关于格式化的。谷歌“oracle 数字格式”
  • 可能重复的帖子。我敢打赌答案就在这里:link

标签: php oracle


【解决方案1】:

如果您不介意对每个查询都这样做,最快的方法是将字符串转换为浮点数:

$num = .141592653589793;
echo (float)$num;        // prints 0.141592653589793

【讨论】:

  • 这会引入重要的舍入错误。例如,尝试使用0.034220
【解决方案2】:

虽然我不熟悉 Oracle,但您可以通过以下方式重新添加这些零:

function maybe_prefix_zero($input) {
    if( substr($input, 0, 1) === ',' ) return '0' . $input;
        else return $input;
}

【讨论】:

    【解决方案3】:

    我发现的最佳解决方案是在数字上加零:

    $nbr=0.3;
    echo $nbr + 0;
    

    【讨论】:

    • 0.30,3 不同
    猜你喜欢
    • 2017-10-06
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    相关资源
    最近更新 更多