Re:Округление double то нужного кол-ва знаков после запятой. Срочно.
> b = trunc (a * 1000.0 + 0.5) / 1000.0;
Если было бы сделано так - то я бы не удивлялся.
А ты можешь объяснить почему именно через trunc у тебя реализовано? Почему бы не сделать так:
b = round(a * 1000.0) / 1000.0;
Например на одну операцию (сложения) меньше выходит? Через trunc - это правильнее, производительнее, точнее или что?
> при крупных числах может быть баг переполнения, посему для них нужны особые извраты, но это редко нужно.
Что за извраты? Наверное они меня и интерсуют. То, на что я смотрю выглядит как бажный индусокод, но может оказаться чем-то охуенно гениальным. Плюс там не только тупое переполнение будет, но проблема приведения чисел к одинаковой экспоненте при которой "0.5" утратит значимость, но я не вижу как тот код, на который я смотрю, мог бы решить эту проблему.
Re:Округление double то нужного кол-ва знаков после запятой. Срочно.
> b = trunc (a * 1000.0 + 0.5) / 1000.0;
Если было бы сделано так - то я бы не удивлялся.
А ты можешь объяснить почему именно через trunc у тебя реализовано? Почему бы не сделать так:
b = round(a * 1000.0) / 1000.0;
Например на одну операцию (сложения) меньше выходит? Через trunc - это правильнее, производительнее, точнее или что?
> при крупных числах может быть баг переполнения, посему для них нужны особые извраты, но это редко нужно.
Что за извраты? Наверное они меня и интерсуют. То, на что я смотрю выглядит как бажный индусокод, но может оказаться чем-то охуенно гениальным. Плюс там не только тупое переполнение будет, но проблема приведения чисел к одинаковой экспоненте при которой "0.5" утратит значимость, но я не вижу как тот код, на который я смотрю, мог бы решить эту проблему.