【问题标题】:PHP formatting of positive and negative floating point numbers with leading zeros带前导零的正负浮点数的 PHP 格式
【发布时间】:2015-03-31 14:52:57
【问题描述】:

场景:
从正负浮点数中修剪前导零

输入:

000.123
00.123
01.123
-001.123
-00.123
-040.123

期望的输出:

0.123
0.123
1.123
-1.123
-0.123
-40.123

问题:
是否有一个内置函数可以比通过 substr()strpos()explode()if 语句的组合运行每个数字更容易和更有效地进行特定的格式化?

【问题讨论】:

  • 请向我们展示您目前拥有的东西,所以我们至少看到您尝试了一些东西,而不仅仅是要求我们编写您的代码(顺便说一句:强制转换为 float 就可以了:echo (float)$str;
  • @Rizier123 我尝试了substr()strpos()explode()if 语句的许多组合。太多了,无法列出。
  • 试试这个:echo sprintf("%01.3lf", $number); 或者更简单的:echo (float) $number; 这对你有用吗?
  • @Rizier123 类型转换为浮动就可以了!谢谢你。请张贴作为答案。
  • 完成!很高兴我能帮你

标签: php floating-point printf number-formatting negative-number


【解决方案1】:

我猜你的数字被保存为一个字符串,所以为了得到你的输出,你只需简单地将它们转换为 floatdouble,如下所示:

echo (float) $number;

有关投射的更多信息,请参阅手册:http://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting

【讨论】:

    【解决方案2】:

    只需将其转换为float

    像这个例子:

    <?php
    $number = '-000.220';
    echo (float)$number;
    

    这样可以删除所有前导零,无论是正数还是负数

    【讨论】:

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