如何用加号或减号显示数字字符串值

Posted

技术标签:

【中文标题】如何用加号或减号显示数字字符串值【英文标题】:How to show number string value with plus or minus 【发布时间】:2020-02-28 06:28:09 【问题描述】:

我正在尝试用加号和减号获取数值

<?php
$num1= '-12.20000';
$num2= '+18.20000';

echo rtrim(str_replace('.00', '', number_format($num1, 2));
echo rtrim(str_replace('.00', '', number_format($num2, 2));

?>

需要像

这样的输出
-12.2
+18.2

【问题讨论】:

这能回答你的问题吗? How to prefix a positive number with plus sign in PHP 你要找的大概是sprintf("%+.1f", $num1) 只需使用NumberFormatter 类来格式化数字。我已经发布了一个如何将其用作答案的示例。 jogin shar "如果一个答案解决了您的问题,请考虑接受这个答案。这里是How does accepting an answer work?。然后返回这里并使用勾选/复选标记执行相同操作,直到它变为绿色。这会通知社区,找到了解决方案。否则,其他人可能会认为问题仍然悬而未决,可能想要发布(更多)答案。您将获得积分,并鼓励其他人帮助您。欢迎使用 Stack!" 【参考方案1】:

我看不出你到底需要什么。示例不够多,您对任务的描述也不够充分。

数字格式为带符号和 2 位小数。如果最后一位是 0,则使用 preg_replace() 将其删除。

$data = ['-12.20000','+18.20000', 234.0, 2.1234];

foreach($data as $value)
  $formatVal = sprintf("%+0.2f",$value);
  $formatVal = preg_replace('~(\.\d)0$~','$1',$formatVal);

  echo $value.' -> '.$formatVal."<br>\n";

输出:

-12.20000 -> -12.2
+18.20000 -> +18.2
234 -> +234.0
2.1234 -> +2.12

如果结果只需要一位小数,您可以使用

$formatVal = sprintf("%+0.1f",$value);

没有 preg_replace。

【讨论】:

【参考方案2】:

在python中,你可以这样做:

def returnWithSign(str):
      n = float(str)
      if n>0:
         return '+'.format(n)
      return n

【讨论】:

为什么是python?操作在python中被问到答案吗?我也看不到任何建议使用 python 的标签【参考方案3】:

不要在 PHP 中使用困难的函数,只需使用 PHP 自带的原生功能即可。这些东西的一个奇妙之处是NumberFormatter 类。

$formatter = new NumberFormatter( 'en_GB', NumberFormatter::DECIMAL );
$formatter->setTextAttribute(NumberFormatter::POSITIVE_PREFIX, '+');  
$num1= '-12.20000';
$num2= '+18.20000';

echo $formatter->format($num1) . PHP_EOL;
echo $formatter->format($num2) . PHP_EOL;

完全按照你的意愿去做。

输出:https://3v4l.org/UQX3Y

【讨论】:

请提及该函数在更高的 PHP 版本 ((PHP 5 &gt;= 5.3.0, PHP 7, PECL intl &gt;= 1.0.0)) 中可用。虽然是非常好的和正确的解决方案。

以上是关于如何用加号或减号显示数字字符串值的主要内容,如果未能解决你的问题,请参考以下文章

DIV,CSS如何实现“加减号”“显示隐藏”效果

DIV,CSS如何实现“加减号”“显示隐藏”效果

如何用js实现 鼠标点击加号文本框内数字加1

在python中能使用加号和减号来连接和删除字符串吗?

第九十四章 SQL函数 %MINUS

计算表达式的值并输出,表达式由若干个数字和运算符(只包含加号和减号)构成