News for hackers. Stuff that matters.
Re:What Every Computer Scientist Should Know About Floating-... by dahfizz on Monday June 29, 2020 @09:00AM (#23677158)
We are talking about two machines talking to each other. Correctness is more important than human readability for bytes on a wire.
Re:What Every Computer Scientist Should Know About Floating-... by ColinWright on Monday June 29, 2020 @09:18AM (#23677280)
Sometimes when two machines talk to each other there is no reliable way to do so in binary. Different endianness, different internal representation of floats, and so forth.

So converting floats can sometimes be necessary, and that's what we're talking about. Going via human readable text is only one specific example.

Re:What Every Computer Scientist Should Know About Floating-... by enriquto on Monday June 29, 2020 @09:53AM (#23677589)
> Different endianness, different internal representation of floats, and so forth.

But this has nothing at all to do with floats. If you transmit 16 or 32 bit ints, or any image/video/sound datatype, or even raw bytes, there can be endianness shenanigans. Introducing endianness when talking about floating point numbers is completely offtopic.

Re:What Every Computer Scientist Should Know About Floating-... by ColinWright on Monday June 29, 2020 @11:11AM (#23678300)
It has everything to do with internal representation of data in general, and floats are one specific example that turns up quite regularly. Sometimes one machine has some data, and you need to transfer that to another machine. Sometimes the internal representation of that data will be different. Sometimes you can't simply "send the bits" and have it work.

So in those cases you need to go through an intermediate representation, and then the question of conversion arises.

So sometimes, when sending a float (as a single example) from one machine to another, you have to go through conversions, and one way to do that is to generate a string representation. The point here and in other comments is that many people think this is easy and obvious, but in truth it's hard and full of pitfalls.

You said:

> I do not understand why would you ever round trip floats through text.

I'm trying to explain that. I have some experience of the issues involved, and was trying to share my experience. You are dismissing it, which is entirely your choice, and in that case, my comments are here for others.

Re:What Every Computer Scientist Should Know About Floating-... by dahfizz on Monday June 29, 2020 @09:32AM (#23677379)
That is an extreme edge case. The vast majority of computing happens on x86 and ARM. Unless you're working on an IBM mainframe, you're using a little endian, IEEE float machine.
Re:What Every Computer Scientist Should Know About Floating-... by ColinWright on Monday June 29, 2020 @11:13AM (#23678326)
I have extensive experience of other systems, and for me, with my experience, it's not an extreme edge case.

If for you it is an extreme edge case, then I suggest you put it to one side and hope it never becomes relevant. But if one day you find a bug you can't explain, maybe it will help you.

Re:What Every Computer Scientist Should Know About Floating-... by kstenerud on Monday June 29, 2020 @11:37AM (#23678544)
Unfortunately, JSON doesn't have a mechanism for 100% accuracy in transmitting binary floating point numbers. Everything gets marshaled to decimal float, and then unmarshaled to binary float - even in machine-to-machine communication. That's simply a limitation of the format.

It's part of the reason I developed Concise Encoding: https://github.com/kstenerud/concise-encoding/#example which allows hex float notation when you need to be exact.

Re:What Every Computer Scientist Should Know About Floating-... by enriquto on Monday June 29, 2020 @12:05PM (#23678833)
> Unfortunately, JSON doesn't have a mechanism for 100% accuracy in transmitting binary floating point numbers.

If it was just inaccurate! It cannot even deal with straightforward floats like inf, nan, or minus zero!

Re:What Every Computer Scientist Should Know About Floating-... by dragonwriter on Monday June 29, 2020 @10:30AM (#23677913)
> We are talking about two machines talking to each other.

There are allnkinds of reasons machines talk to each other in human readable formats. APIsare for machine-to-machine communications, and yet APIs that speak JSON or XML are not uncommon.