this post was submitted on 17 May 2025
351 points (97.3% liked)

Programmer Humor

23545 readers
2095 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 2 weeks ago (2 children)
[–] [email protected] 1 points 1 week ago (2 children)

I'd say C too because that's the only one that would be True in a normal programming language and this is javascript so...

[–] [email protected] 4 points 1 week ago (2 children)

probably not true in most other langauges. although I'm not well versed in the way numbers are represented in code and what makes a number "NaN", something tells me the technical implications of that would be quite bad in a production environment.

the definitive way to check for NaN in JS would probably be something like

// with `num` being an unknown value

// Convert value to a number
const res = Number(num);

/*
 * First check if the number is 0, since 0 is a falsy
 * value in JS, and if it isn't, `NaN` is the only other
 * falsy number value
 */
const isNaN = res !== 0 && !res;
[–] [email protected] 2 points 1 day ago* (last edited 1 day ago)

Another way to check whether a number is NaN:

const isNaN = res !== res;

As NaN is the only value out there that is not equal to itself. See my other comment on this post for more: https://programming.dev/comment/17221245

This comparison should work in every programming language out there that implements/respects/uses IEEE 754 floating point numbers.

[–] [email protected] 2 points 1 week ago

NaN is a special floating point value. https://en.wikipedia.org/wiki/IEEE_754

It's weird but it makes sense why it was chosen to be this way.

[–] [email protected] 3 points 1 week ago (1 children)

It's not true in a normal programming language. If it is true in yours, you should stop using it immediately.

[–] [email protected] 1 points 1 week ago (1 children)

A non type should be a type. It should be of the type none. And it is in good script languages like Python so I don't know why you think it shouldn't.

[–] [email protected] 1 points 1 week ago (1 children)

They say a picture is worth a thousand words.

[–] [email protected] 1 points 1 week ago (1 children)

That's a Numpy type, not a Python typesm, try a=None b=None a==b

[–] [email protected] 1 points 1 week ago* (last edited 1 week ago)

That's not a type. A NaN is a floating point number (of type float). I used numpy because that's the easiest way to get a NaN.

This is part of the floating point standard.

This was never about None, which is a completely different thing.

[–] [email protected] 0 points 1 week ago

Can't be C, C is the true path.