如何将正数(例如 3)显示为 +3,将负数(例如 -5)显示为 -5?所以,如下:
1、2、3 变为+1、+2、+3
但是如果那些是
-1,-2,-3 然后进入-1,-2,-3
您可以使用这样的简单表达式:
(n<0?"":"+") + n
如果数字为正,则条件表达式结果为加号;如果数字为负,则条件表达式结果为空字符串。
您没有指定如何处理零,所以我假设它会显示为
+0
。如果您只想将其显示为 0
,请使用 <=
运算符:
(n<=0?"":"+") + n
现代的解决方案是使用 Intl.NumberFormat
const myNumber = 5;
new Intl.NumberFormat("en-US", {
signDisplay: "exceptZero"
}).format(myNumber);
根据
myNumber
的不同,它会显示正号或负号,除非它是 0。
// Forces signing on a number, returned as a string
function getNumber(theNumber)
{
if(theNumber > 0){
return "+" + theNumber;
}else{
return theNumber.toString();
}
}
这将为你做。
printableNumber = function(n) { return (n > 0) ? "+" + n : n; };
写一个js函数来帮你做?
类似的东西
var presentInteger = function(toPresent) {
if (toPresent > 0) return "+" + toPresent;
else return "" + toPresent;
}
您还可以使用条件运算符:
var stringed = (toPresent > 0) ? "+" + toPresent : "" + toPresent;
感谢评论指出“-”+ toPresent 会在字符串上放置一个双--....
function format(n) {
return (n>0?'+':'') + n;
}
['','+'][+(num > 0)] + num
或
['','+'][Number(num > 0)] + num
它是比三元运算符更短的形式,基于将布尔值转换为数字 0 或 1 并将其用作带前缀的数组的索引,对于大于 0 的数字,使用前缀“+”
使用三元运算符的解决方案似乎很好,但为了好玩,这里还有另一个:
('+'+x).replace("+-", "-");
大致如下:
if (num > 0)
{
numa = "+" + num;
}
else
{
numa = num.toString();
}
然后打印字符串
numa
。
现在,您可以使用
toLocaleString()
并将 signDisplay
设置为 always
,如下所示:
let x = 20;
// Outputs +20
x.toLocaleString('en', { signDisplay: 'always' })
现代语法解决方案。
它还包括符号和数字之间的空格:
function getNumberWithSign(input) {
if (input === 0) {
return "0"
}
const sign = input < 0 ? '-' : '+';
return `${sign} ${Math.abs(input)}`;
}