Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.84.155] |
|
Сообщ.
#1
,
|
|
|
Подскажите плиз, как красиво округлить double до int'a?
Я бы поискал по форуму, но тут чего-то поиск не работает... (или у меня и-нет глючит) |
Сообщ.
#2
,
|
|
|
double d = 12.4523; int i = (int)(d + 0.5); Красиво, не красиво - зато по-правилам... |
Сообщ.
#3
,
|
|
|
Цитата Что значит "округлить"?fatalist, 25.01.04, 16:42 Подскажите плиз, как красиво округлить double до int'a? И что значит "красиво"? Преобразование в int double a = ...; int b = (int)a; Округление к меньшему целому double a = ...; double b = floor(a); Округление к большему целому double a = ...; double b = ceil(a); Округление к ближайшему целому double a = ...; double b = floor(a+0.5); ... |
Сообщ.
#4
,
|
|
|
Цитата trainer @ 25.01.04, 16:53 Округление к ближайшему целому double a = ...; double b = floor(a+0.5); ... вот под этим я и понимаю "красиво"... или под этим: Цитата double d = 12.4523; int i = (int)(d + 0.5); Спасибо! |
Сообщ.
#5
,
|
|
|
А как округлить с заданной точностью? Тобишь
дано float a=5.23457656 а надо обрезать его до скажем 3 знаков после точки например: a=5.235 ?? |
Сообщ.
#6
,
|
|
|
// Округление до ближайшего с заданной точностью // DigAfterPt - количество знаков после запятой double RoundTo(double value, int DigAfterPt) { double factor = power(10.0,DigAfterPt); return floor(value*factor+0.5)/factor; } |
Сообщ.
#7
,
|
|
|
А какую библиотеку включать для функции power?
|
Сообщ.
#8
,
|
|
|
Пардоньте, не power, а pow - из math.h
// Округление до ближайшего с заданной точностью // DigAfterPt - количество знаков после запятой double RoundTo(double value, int DigAfterPt) { double factor = pow(10.0,DigAfterPt); return floor(value*factor+0.5)/factor; } |