Re[3]: Округление
От: migel  
Дата: 11.10.01 04:45
Оценка:
Здравствуйте Smetanin, Вы писали:

S>Здравствуйте Snax, Вы писали:


S>Private Sub Command1_Click()

S> Dim i As Double
S> i = 0.005
S> MsgBox "Round(i,2) = " & CStr(Round(i, 2))
S>End Sub

S>Должно получаться, IMHO 0.01, а получается 0.


На С просто:
double Round(double val, int precision)
{
double dFr ;
// увеличиваем (уменьшаем на точность).
val = val * pow(10, precision) ;
// получаем значение до дес. точки.
dFr = modf( val, &val ) ;
// округляем по общему принципу.
if( fabs(dFr) >= 0.5 )
val = val + (dFr > 0.0 ? 1.0 : -1.0 ) ;
// возвращаем значение обратно.
val = val * pow(10,-precision) ;
return val ;
}
Вариант не самый оптимальный по скорости но для бухгалтерии сойдет...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.