JavaScript:用加号显示正数

问题描述 投票:0回答:11

如何将正数(例如 3)显示为 +3,将负数(例如 -5)显示为 -5?所以,如下:

1、2、3 变为+1、+2、+3

但是如果那些是

-1,-2,-3 然后进入-1,-2,-3

javascript numbers
11个回答
62
投票

您可以使用这样的简单表达式:

(n<0?"":"+") + n

如果数字为正,则条件表达式结果为加号;如果数字为负,则条件表达式结果为空字符串。

您没有指定如何处理零,所以我假设它会显示为

+0
。如果您只想将其显示为
0
,请使用
<=
运算符:

(n<=0?"":"+") + n

26
投票

现代的解决方案是使用 Intl.NumberFormat

const myNumber = 5;

new Intl.NumberFormat("en-US", {
    signDisplay: "exceptZero"
}).format(myNumber);

根据

myNumber
的不同,它会显示正号或负号,除非它是 0。


23
投票
// Forces signing on a number, returned as a string
function getNumber(theNumber)
{
    if(theNumber > 0){
        return "+" + theNumber;
    }else{
        return theNumber.toString();
    }
}

这将为你做。


6
投票
printableNumber = function(n) { return (n > 0) ? "+" + n : n; };

4
投票

写一个js函数来帮你做?

类似的东西

var presentInteger = function(toPresent) {
    if (toPresent > 0) return "+" + toPresent;
    else return "" + toPresent;
}

您还可以使用条件运算符:

var stringed = (toPresent > 0) ? "+" + toPresent : "" + toPresent;

感谢评论指出“-”+ toPresent 会在字符串上放置一个双--....


3
投票
function format(n) {
    return (n>0?'+':'') + n;
}

3
投票
['','+'][+(num > 0)] + num

['','+'][Number(num > 0)] + num

它是比三元运算符更短的形式,基于将布尔值转换为数字 0 或 1 并将其用作带前缀的数组的索引,对于大于 0 的数字,使用前缀“+”


1
投票

使用三元运算符的解决方案似乎很好,但为了好玩,这里还有另一个:

('+'+x).replace("+-", "-");

0
投票

大致如下:

if (num > 0)
{
   numa = "+" + num;
}
else
{
   numa = num.toString();
}

然后打印字符串

numa


0
投票

现在,您可以使用

toLocaleString()
并将
signDisplay
设置为
always
,如下所示:

let x = 20;

// Outputs +20
x.toLocaleString('en', { signDisplay: 'always' })

-1
投票

现代语法解决方案。

它还包括符号和数字之间的空格:

function getNumberWithSign(input) {
  if (input === 0) {
    return "0"
  }

  const sign = input < 0 ? '-' : '+';

  return `${sign} ${Math.abs(input)}`;
}
© www.soinside.com 2019 - 2024. All rights reserved.