округление в с++
2174
8
заранее прошу прощения за абсолютно ламаковский вопрос, но все же как в с++ устроить округление значения переменной float до определенного количества знаков после запятой с присвоением получившегося значения другой переменной?
sunrise
round(f * 10n) / 10n
sunrise
А формат данных порулить?
На память я не помню, но что-то вроде %10.5f при выводе.
До точки - кол-во целых, после - кол-во дробных.
По-моему и при вычислениях примерно так.
Но могу ошибиться.
Погляди описание формата данных.
ganymed
Это при выводе. Это понятно. Вопрос-то именно в усечении дробной части самого значения. Тут верно Reluk посоветовал.
Только поправочка:
round(x*10n)/(float)10n;
Иначе у результата усечется дробная часть.
(10n - это 10 в степени n. Кстати, сделать его можно как exp(n*ln(10)); )
Поручик Голицын
Кстати, сделать его можно как exp(n*ln(10));
а что не pow(n, 10); ?
sunrise
ну, то есть pow(10, n);
sunrise
>>> а что не pow(n, 10); ?

А потому что не знал :). Вот и пришлось мозгами пошевелить...
Пасиб.
Вопрос совсем уж смешной: где round() описана?:улыб:
sunrise
А почему нельзя функцией Set8087CW()?
Ведь как я понял вычисляешь с большой точностью и этим засоряешь память, Set8087CW() насколько я понимаю сразу вычисляет с необходимой точностью.
// Я могу ошибаться! Ведь я только учусь