JavaScript:使用加号显示正数

时间:2010-12-03 15:30:28

标签: javascript numbers

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

1,2,3进入+1,+ 2,+ 3

但如果那些是

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

10 个答案:

答案 0 :(得分:31)

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

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

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

您尚未指定如何处理零,因此我假设它将显示为+0。如果您想将其显示为0,请改为使用<=运算符:

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

答案 1 :(得分:19)

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

这将为你做。

答案 2 :(得分:4)

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

答案 3 :(得分:3)

写一个js函数来为你做这个吗?

类似

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

你也可以使用条件运算符:

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

Thanx对评论指出“ - ”+ toPresent会把双倍 - 放在字符串上....

答案 4 :(得分:1)

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

答案 5 :(得分:0)

类似于:

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

然后打印字符串numa

答案 6 :(得分:0)

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

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

它是一种比三元运算符更短的形式,它基于将boolean强制转换为数字0或1,并将其用作带有前缀的数组的索引,对于大于0的数字,则使用前缀'+'

答案 7 :(得分:0)

现代语法解决方案。

它还在符号和数字之间包含一个空格:

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

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

  return `${sign} ${Math.abs(input)}`;
}

答案 8 :(得分:0)

尽管使用三元运算符可以说更实用,但这是另一种有趣的方式:

'+'.repeat(number >= 0) + number

或者这个:

[['+'][number & 0x80000000], number].join('')

答案 9 :(得分:0)

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

const myNumber = 5;

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

取决于 myNumber 是什么,它将显示正号或负号,除非它是 0。