Сегодня выяснил чему равно число "чуть более чем половина": примерно 0.500000000000000111022302462516
void nearest(double v, double* vg, double* vl) {
double d = 0.1;
double v2 = v + d;
if (v == 0.0) {
d = DBL_EPSILON;
*vg = v + d;
*vl = v - d;
} else while (v2 != v) {
*vg = v + d;
*vl = v - d;
d = d * 0.9;
v2 = v + d;
}
}
// на говнокод уже запостил // ппц он ещё жив