Why does 0.-5 evaluate to -5?var functionName = function() {} vs function functionName() {}Difference between...
The No-Straight Maze
How do I add a strong "onion flavor" to the biryani (in restaurant style)?
How can I handle players killing my NPC outside of combat?
What are some ways of extending a description of a scenery?
How do I narratively explain how in-game circumstances do not mechanically allow a PC to instantly kill an NPC?
Does the US government have any planning in place to ensure there's no shortages of food, fuel, steel and other commodities?
Reading Mishnayos without understanding
How much light is too much?
Taking an academic pseudonym?
Why does 0.-5 evaluate to -5?
Sensor logger for Raspberry Pi in a stratospheric probe
Why is "rm -r" unable to delete this folder?
Why did Ylvis use "go" instead of "say" in phrases like "Dog goes 'woof'"?
Is it possible to detect 100% of SQLi with a simple regex?
What species should be used for storage of human minds?
Was there a pre-determined arrangement for the division of Germany in case it surrendered before any Soviet forces entered its territory?
How do dictionaries source attestation?
Is the fingering of thirds flexible or do I have to follow the rules?
Identical projects by students at two different colleges: still plagiarism?
How can I prevent an oracle who can see into the past from knowing everything that has happened?
Is there any danger of my neighbor having my wife's signature?
Other than edits for international editions, did Harry Potter and the Philosopher's Stone receive errata?
What does からか mean?
Why do neural networks need so many examples to perform?
Why does 0.-5 evaluate to -5?
var functionName = function() {} vs function functionName() {}Difference between == and === in JavaScriptHow does JavaScript .prototype work?What does “use strict” do in JavaScript, and what is the reasoning behind it?Storing Objects in HTML5 localStorageWhat is JSONP all about?Why does Google prepend while(1); to their JSON responses?How to print a number with commas as thousands separators in JavaScriptIs it possible to apply CSS to half of a character?Can (a== 1 && a ==2 && a==3) ever evaluate to true?
Suppose I write 0.5 as 0.-5 in unexpected way, but it can still run. What does 0. in 0.-5 do so that it can still run and evaluates to -5?
I also tried alert(0.-5+1) which prints -4, does JavaScript ignore 0. in 0.-5?
javascript numbers
add a comment |
Suppose I write 0.5 as 0.-5 in unexpected way, but it can still run. What does 0. in 0.-5 do so that it can still run and evaluates to -5?
I also tried alert(0.-5+1) which prints -4, does JavaScript ignore 0. in 0.-5?
javascript numbers
4
0.is like0.0. Or just0.
– Ry-♦
6 hours ago
1
What makes you think that0.-5is an "unexpected way"?
– Nico Haase
54 mins ago
@NicoHaase: I'm pretty sure the OP used "unexpected way" to mean "I did not intend/expect to write that, but somehow I did".
– Filip Milovanović
28 mins ago
add a comment |
Suppose I write 0.5 as 0.-5 in unexpected way, but it can still run. What does 0. in 0.-5 do so that it can still run and evaluates to -5?
I also tried alert(0.-5+1) which prints -4, does JavaScript ignore 0. in 0.-5?
javascript numbers
Suppose I write 0.5 as 0.-5 in unexpected way, but it can still run. What does 0. in 0.-5 do so that it can still run and evaluates to -5?
I also tried alert(0.-5+1) which prints -4, does JavaScript ignore 0. in 0.-5?
javascript numbers
javascript numbers
edited 34 mins ago
Community♦
11
11
asked 6 hours ago
mmmaaammmaaa
2,2461312
2,2461312
4
0.is like0.0. Or just0.
– Ry-♦
6 hours ago
1
What makes you think that0.-5is an "unexpected way"?
– Nico Haase
54 mins ago
@NicoHaase: I'm pretty sure the OP used "unexpected way" to mean "I did not intend/expect to write that, but somehow I did".
– Filip Milovanović
28 mins ago
add a comment |
4
0.is like0.0. Or just0.
– Ry-♦
6 hours ago
1
What makes you think that0.-5is an "unexpected way"?
– Nico Haase
54 mins ago
@NicoHaase: I'm pretty sure the OP used "unexpected way" to mean "I did not intend/expect to write that, but somehow I did".
– Filip Milovanović
28 mins ago
4
4
0. is like 0.0. Or just 0.– Ry-♦
6 hours ago
0. is like 0.0. Or just 0.– Ry-♦
6 hours ago
1
1
What makes you think that
0.-5 is an "unexpected way"?– Nico Haase
54 mins ago
What makes you think that
0.-5 is an "unexpected way"?– Nico Haase
54 mins ago
@NicoHaase: I'm pretty sure the OP used "unexpected way" to mean "I did not intend/expect to write that, but somehow I did".
– Filip Milovanović
28 mins ago
@NicoHaase: I'm pretty sure the OP used "unexpected way" to mean "I did not intend/expect to write that, but somehow I did".
– Filip Milovanović
28 mins ago
add a comment |
4 Answers
4
active
oldest
votes
Trailing digits after a . are optional:
console.log(0. === 0);So
0.-5
evalutes to
0 - 5
which is just -5. Similarly,
0.-5+1
is
0 - 5 + 1
which is
-5 + 1
or -4.
add a comment |
In JS you can express a number with optional decimal point.
x = 5.; //5
x = 5. + 6. //11
And as of Tvde1's comment, any Number methods can be applied too.
5..toString()
1
You can even do5..toString().
– Tvde1
4 hours ago
If fact, you have to do 5..toString() to call the method, otherwise, you have to use parenthesis: (5).toString()
– jo_va
33 mins ago
add a comment |
0.-5 could be successfully parsed as 0., - and 5. Below is the abstract syntax tree for the expression:

This (in an unexpected way) is valid JavaScript and evaluates to -5.
1
And what is wrong with that?
– Salman A
3 mins ago
add a comment |
The trailing dot can be used to call a method directly on a number. Normally you would wrap it in parentheses to isolate the dot, because JavaScript syntax implies the decimal part after the first dot. If you place more two dots, then JavaScript knows the decimal part is empty and the second dot is here to call a method. See this for more information.
console.log((5).toString());
console.log(5..toString());If you omit the dot, you will get an error:
console.log(5.toString())
"The trailing dot can be used to call a method directly on a number" — The trailing dot here is a decimal point.
– Quentin
5 mins ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54859228%2fwhy-does-0-5-evaluate-to-5%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Trailing digits after a . are optional:
console.log(0. === 0);So
0.-5
evalutes to
0 - 5
which is just -5. Similarly,
0.-5+1
is
0 - 5 + 1
which is
-5 + 1
or -4.
add a comment |
Trailing digits after a . are optional:
console.log(0. === 0);So
0.-5
evalutes to
0 - 5
which is just -5. Similarly,
0.-5+1
is
0 - 5 + 1
which is
-5 + 1
or -4.
add a comment |
Trailing digits after a . are optional:
console.log(0. === 0);So
0.-5
evalutes to
0 - 5
which is just -5. Similarly,
0.-5+1
is
0 - 5 + 1
which is
-5 + 1
or -4.
Trailing digits after a . are optional:
console.log(0. === 0);So
0.-5
evalutes to
0 - 5
which is just -5. Similarly,
0.-5+1
is
0 - 5 + 1
which is
-5 + 1
or -4.
console.log(0. === 0);console.log(0. === 0);answered 6 hours ago
CertainPerformanceCertainPerformance
88.9k154877
88.9k154877
add a comment |
add a comment |
In JS you can express a number with optional decimal point.
x = 5.; //5
x = 5. + 6. //11
And as of Tvde1's comment, any Number methods can be applied too.
5..toString()
1
You can even do5..toString().
– Tvde1
4 hours ago
If fact, you have to do 5..toString() to call the method, otherwise, you have to use parenthesis: (5).toString()
– jo_va
33 mins ago
add a comment |
In JS you can express a number with optional decimal point.
x = 5.; //5
x = 5. + 6. //11
And as of Tvde1's comment, any Number methods can be applied too.
5..toString()
1
You can even do5..toString().
– Tvde1
4 hours ago
If fact, you have to do 5..toString() to call the method, otherwise, you have to use parenthesis: (5).toString()
– jo_va
33 mins ago
add a comment |
In JS you can express a number with optional decimal point.
x = 5.; //5
x = 5. + 6. //11
And as of Tvde1's comment, any Number methods can be applied too.
5..toString()
In JS you can express a number with optional decimal point.
x = 5.; //5
x = 5. + 6. //11
And as of Tvde1's comment, any Number methods can be applied too.
5..toString()
edited 1 hour ago
answered 5 hours ago
Charlie HCharlie H
9,05342550
9,05342550
1
You can even do5..toString().
– Tvde1
4 hours ago
If fact, you have to do 5..toString() to call the method, otherwise, you have to use parenthesis: (5).toString()
– jo_va
33 mins ago
add a comment |
1
You can even do5..toString().
– Tvde1
4 hours ago
If fact, you have to do 5..toString() to call the method, otherwise, you have to use parenthesis: (5).toString()
– jo_va
33 mins ago
1
1
You can even do
5..toString().– Tvde1
4 hours ago
You can even do
5..toString().– Tvde1
4 hours ago
If fact, you have to do 5..toString() to call the method, otherwise, you have to use parenthesis: (5).toString()
– jo_va
33 mins ago
If fact, you have to do 5..toString() to call the method, otherwise, you have to use parenthesis: (5).toString()
– jo_va
33 mins ago
add a comment |
0.-5 could be successfully parsed as 0., - and 5. Below is the abstract syntax tree for the expression:

This (in an unexpected way) is valid JavaScript and evaluates to -5.
1
And what is wrong with that?
– Salman A
3 mins ago
add a comment |
0.-5 could be successfully parsed as 0., - and 5. Below is the abstract syntax tree for the expression:

This (in an unexpected way) is valid JavaScript and evaluates to -5.
1
And what is wrong with that?
– Salman A
3 mins ago
add a comment |
0.-5 could be successfully parsed as 0., - and 5. Below is the abstract syntax tree for the expression:

This (in an unexpected way) is valid JavaScript and evaluates to -5.
0.-5 could be successfully parsed as 0., - and 5. Below is the abstract syntax tree for the expression:

This (in an unexpected way) is valid JavaScript and evaluates to -5.
edited 4 mins ago
answered 9 mins ago
Salman ASalman A
182k66339433
182k66339433
1
And what is wrong with that?
– Salman A
3 mins ago
add a comment |
1
And what is wrong with that?
– Salman A
3 mins ago
1
1
And what is wrong with that?
– Salman A
3 mins ago
And what is wrong with that?
– Salman A
3 mins ago
add a comment |
The trailing dot can be used to call a method directly on a number. Normally you would wrap it in parentheses to isolate the dot, because JavaScript syntax implies the decimal part after the first dot. If you place more two dots, then JavaScript knows the decimal part is empty and the second dot is here to call a method. See this for more information.
console.log((5).toString());
console.log(5..toString());If you omit the dot, you will get an error:
console.log(5.toString())
"The trailing dot can be used to call a method directly on a number" — The trailing dot here is a decimal point.
– Quentin
5 mins ago
add a comment |
The trailing dot can be used to call a method directly on a number. Normally you would wrap it in parentheses to isolate the dot, because JavaScript syntax implies the decimal part after the first dot. If you place more two dots, then JavaScript knows the decimal part is empty and the second dot is here to call a method. See this for more information.
console.log((5).toString());
console.log(5..toString());If you omit the dot, you will get an error:
console.log(5.toString())
"The trailing dot can be used to call a method directly on a number" — The trailing dot here is a decimal point.
– Quentin
5 mins ago
add a comment |
The trailing dot can be used to call a method directly on a number. Normally you would wrap it in parentheses to isolate the dot, because JavaScript syntax implies the decimal part after the first dot. If you place more two dots, then JavaScript knows the decimal part is empty and the second dot is here to call a method. See this for more information.
console.log((5).toString());
console.log(5..toString());If you omit the dot, you will get an error:
console.log(5.toString())The trailing dot can be used to call a method directly on a number. Normally you would wrap it in parentheses to isolate the dot, because JavaScript syntax implies the decimal part after the first dot. If you place more two dots, then JavaScript knows the decimal part is empty and the second dot is here to call a method. See this for more information.
console.log((5).toString());
console.log(5..toString());If you omit the dot, you will get an error:
console.log(5.toString())console.log((5).toString());
console.log(5..toString());console.log((5).toString());
console.log(5..toString());console.log(5.toString())console.log(5.toString())answered 18 mins ago
jo_vajo_va
4,6531726
4,6531726
"The trailing dot can be used to call a method directly on a number" — The trailing dot here is a decimal point.
– Quentin
5 mins ago
add a comment |
"The trailing dot can be used to call a method directly on a number" — The trailing dot here is a decimal point.
– Quentin
5 mins ago
"The trailing dot can be used to call a method directly on a number" — The trailing dot here is a decimal point.
– Quentin
5 mins ago
"The trailing dot can be used to call a method directly on a number" — The trailing dot here is a decimal point.
– Quentin
5 mins ago
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54859228%2fwhy-does-0-5-evaluate-to-5%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
4
0.is like0.0. Or just0.– Ry-♦
6 hours ago
1
What makes you think that
0.-5is an "unexpected way"?– Nico Haase
54 mins ago
@NicoHaase: I'm pretty sure the OP used "unexpected way" to mean "I did not intend/expect to write that, but somehow I did".
– Filip Milovanović
28 mins ago