I do not understand your goal here. You are clearly outside of your skill set and not really adding any value. Is it simply to boost your response count?
Calculators have exact precision rounded to the last presented digit. Said another way, give it any number within the arbitrary range limit of calculator and the answer will (should) be exact rounded to the last presented digit. This as been true since electronic calculators have been around.
Hardly.
This is wrong, again. It wasn't until recent times that calculator microprocessors had floating point units.
It is precisely dismissive enough.
Let me rephrase. It is arrogant.
Floating point arithmetic can be quite sophisticated at the edges. However, I don't think you are anywhere close to those edges. I followed your instructions above and got a different result. How am I supposed to believe your claims about Calculator's failings when your numbers don't add up?
Maybe you are typing it in wrong.
The easiest way to see what is going on would be to actually write a little C program and print out doubles (as unsigned longs) and see what the bit patterns are. It would look something like this...
All this shows is the hardwares implementation of the floating point to integral type cast. But even that is hardware dependent. It is unclear to me what that is supposed to bring to discussion.
This appears to be mentioned in that paper you cited. But that paper is 30 years old...
It was required reading 25 years ago for me in school and I'm pretty sure it still is. I am not trying to make a point, I am trying to educate someone who is outside of their lane. The floating point environment is fairly standardized---the most fundamental parts and their behaviors are part of the C standard. Intel/Arm's implementation of floating point units, the compilers use of those instructions, you or my understanding of it is not what is at issue here. The toolchain's implementation of floating point types are most certainly correct. Not being able to multiply two integers integer whose product is within the supported bit-depth and blaming it on the underlying type is a poor excuse.
As far as your header picture, nice try. This is completely and utterly wrong, again. The time functions are a C kernel interface not written in Swift of Objective-C.
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/i386/types.h
Which you can follow from the include chain:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/time.h
Also, "time intervals" are not the same as a "time point". Time intervals are the difference between any arbitrary points in time. A time point is relative to the epoch.
There is a big difference between representations of numbers, which can be very accurate and arbitrarily precise, and calculations on those numbers, which are subject to laws of both physics and economics.
Not relevant. So either you are the developer that wrote the Calculator app trying to defend a bad design decision or someone who has no idea how the underlying calculations are taking place and ultimately defending something you absolutely no nothing about. Which is it?
macOS doesn't have a "BSD backend". It is a mongrel operating system made from several different systems, including BSD, NeXT, mach, MacOS, iOS, and even a little bit of Windows thrown in for good measure. It does expose a UNIX-compliant API that is generally close enough to BSD to fool most people and most autoconf scripts.
Red herring. The MacOS kernel is basically BSD. True, lot of things bolted on to it but still basically BSD. Likewise, it isn't just to "fool an autoconf script", it is actually Unix-compliant and branded. That means that has to comply with the required Unix interfaces---including the fact that the system time types are not floating point. Sorry.
https://opensource.apple.com/source/xnu/xnu-7195.81.3/bsd/
https://www.opengroup.org/openbrand/register/xy.htm
I don't know why you are worrying over this issue for months. It's just a little calculator app.
I am not worrying abut this for months. I put a tip on the discussion site so that maybe others wouldn't get caught in the same trap I did. My question, is why you didn't just say "thanks" and leave it at that? You obviously don't program for a living so why do you even care? Your responses are not adding value. You are clearly just googling topics and trying to pass off what you've read as expertise. Please stop.