How would I display positive number such as 3 as +3 and negative numbers such -5 as -5? So, as follows:
1, 2, 3 goes into +1, +2, +3
but if those are
-1, -2, -3 then goes into -1, -2, -3
How would I display positive number such as 3 as +3 and negative numbers such -5 as -5? So, as follows:
1, 2, 3 goes into +1, +2, +3
but if those are
-1, -2, -3 then goes into -1, -2, -3
You can use a simple expression like this:
(n<0?"":"+") + n
The conditional expression results in a plus sign if the number is positive, and an empty string if the number is negative.
You haven't specified how to handle zero, so I assumed that it would be displayed as +0
. If you want to display it as just 0
, use the <=
operator instead:
(n<=0?"":"+") + n
// Forces signing on a number, returned as a string
function getNumber(theNumber)
{
if(theNumber > 0){
return "+" + theNumber;
}else{
return theNumber.toString();
}
}
This will do it for you.
A modern solution would be to use Intl.NumberFormat
const myNumber = 5;
new Intl.NumberFormat("en-US", {
signDisplay: "exceptZero"
}).format(myNumber);
depending on what myNumber
is it will display positive or negative sign, except when it's a 0.
write a js function to do it for you?
something like
var presentInteger = function(toPresent) {
if (toPresent > 0) return "+" + toPresent;
else return "" + toPresent;
}
you could also use the conditional operator:
var stringed = (toPresent > 0) ? "+" + toPresent : "" + toPresent;
Thanx to the comments for pointing out that "-" + toPresent would put a double -- on the string....
['','+'][+(num > 0)] + num
or
['','+'][Number(num > 0)] + num
It is a shorter form than the ternary operator, based on casting boolean to the number 0 or 1 and using it as an index of an array with prefixes, for a number greater than 0 the prefix '+' is used
something along the lines of:
if (num > 0)
{
numa = "+" + num;
}
else
{
numa = num.toString();
}
and then print the string numa
.
The solution with the ternary operator seems just fine, but for the fun of it, here is another one:
('+'+x).replace("+-", "-");
Modern syntax solution.
It also includes a space between sign and number:
function getNumberWithSign(input) {
if (input === 0) {
return "0"
}
const sign = input < 0 ? '-' : '+';
return `${sign} ${Math.abs(input)}`;
}