Fortran (note the post-'77 spelling) doesn't. It has KINDs. REALx is a non-standard extension, and there's definitely no requirement to implement 128-bit floating point. I don't know what hardware other than POWER has hardware 128-bit FP (both IEEE and IBM format, with a somewhat painful recent change of the ppc64le ABI default in GCC etc.).
Works great in XaoS, which is where I like my extra precision, but a deep fractal zoom can consume as much precision as you can muster. Imagine a 64kbit-precision Mandelbrot zoom!
(But don't use it without a valid reason or your program is going to be slow because no SIMD)
Initial question: what would that be on a system without hardware floating point?
Luckily, https://dlang.org/spec/type.html says (not 100% unambiguously) it isn’t necessarily “the widest float available on the target“, but either that or, if that doesn’t have both the range and precision of double, double.
So, if you decide to use it, you’re guaranteed not to give up range or precision, may gain some, but also may give up performance.
It's all SSE and AVX (wider and more comprehensive instruction set) nowadays.
Check the current GCC code from inlined fmod (e.g. -Ofast). Whether that's appropriate is the question.
#include <stdio.h>
int main(void)
{ long double ld; double d;
ld = 1000; ld = ld/3;
d = 1000; d = d/3;
printf("%.16g %.16g\n",(double)(ld-333),d-333);
return 0;
}
produces the following output: 0.3333333333333334 0.3333333333333144
The 80-bit long double type gives higher accuracy.This is on an AMD Threadripper PRO 3945WX using gcc 9.4.0.