Hacker News new | ask | show | jobs
by SamBam 439 days ago
What do you mean when you type in '"1/2" + 1'?

Unless you just want to keep that text as plain text, it's going to be doing some interpreting.

4 comments

Devil’s devil’s advocate here for better interpretations:

- 1.5

- CONV_ERR: invalid operator for type TEXT

I cannot imagine any programming language interpret "1/2" as a day and month in that specific context.

It takes a very special mindset to do that, maybe the kind that comes from a junior MBA manager, for example ... and even then I find that farfetched.

It sounds more like one of those things that is observed, but some manager decided it is not high priority enough to fix right away. And then technical debt raises its ugly head.

“1/2” is a string. So “1/2”+1 is either an error because of datetype mismatch (which is terrible UX for a spreadsheet or going to mean one of the following to scenarios:

    Date plus a day

    “1/2” concatenates with “1”
The latter is wrong, the former, while unexpected, does kind of make the most sense here.
Excel allows bare strings, so `"1/2" + 1` is a string with embedded quotation marks. So that's a third option for what to do.
True. And that would probably make the most sense too.

A very good point you’ve made there :)

Why would you favour "date plus a day" rather than "number plus a number"?

I agree Excel has to guess, and in isolation guessing that "1/2" should be parsed a date is not a terrible choice, and that parsing the individual components separately is simpler and more predictable than using the full context that it's about to be added to a number. But evaluating to 1.5 would raise few eyebrows.

> Why would you favour "date plus a day" rather than "number plus a number"?

Date is a number though. It’s only when we print them in a human readable way that they become anything else.

Whereas 1/2 is an expression.

Haven't seen "1/21" as an answer yet
An answer where? Not sure I follow
I just wanted to introduce "1/21" as an answer
Ahh I see the confusion now. I suggested it in the comment you were replying to:

> “1/2” concatenates with “1”

…and thought you’d spotted that and was saying others had disagreed with the concatenation way of handling + operators with strings.

If I type in 1/2, that means 1 divided by 2, or 0.5. If I then type +1, that means add 1.

1/2 I should never mean any kind of date, unless I'm entering it into a field that has already been declared a date field, or I have written that, then declared the field to be a date field.

I think most people that enter `1/2` in a spreadsheet do indeed mean `January 2nd` and not `0.5`. In the wider world of people using spreadsheets, dates are certainly more common than fractions.
You're right about that, but maybe it should just treat '1/2' as '1/2' and only convert it if it makes sense for the current operation. If I type 1/2 and I want the date, then I want 1/2, not Feb 1, or Jan 2, or 01/02/2025, or 2025-02-01, unless again, I have explicitly specified that this cell is a date, and this is the format I want it in.
In Sweden we don't use that numbering scheme and instead use Day/Month Year (which makes more sense as it goes from smaller to larger).
I think it's just what you're used to. If counting from smallest to largest was inherently better, then a dozen would look like 21, not 12. Little vs Big Endian, I suppose.
The issue is when you do Month/Day/Year, then you lose consistency. Both Year/Month/Day or Day/Month/Year are more logical.
It would be interesting to know if your Excel correctly interprets 1/2 as 1st February based on your international settings.
Spoiler: it does.
Dates are often typed with slashes. Numbers are never typed with slashes in almost all business applications, and practically all likely uses of excel. Why should excel slow down people wanting to enter dates, a very common activity, to allow for you wanting to enter a fraction?
The answer is 1/21, clearly. I guess what it should do is give a green squiggly if the implicit conversions are suspicious.