Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция округления в большую сторону (к целому). Идеи есть?
 
 автор: akkorn   (11.11.2007 в 14:32)   личное сообщение
 
 

Добрый день!

Есть числа (к примеру):
1,1
1,7
как из них получить 2

2,1
2,7
как из этих двух получить 3 ???


В тоже время, если число будет равняться 1, то должна выйти 1
(или если число 2, то должно получиться число 2)

Кто знает как написать ф-цию с передаваемой переменной, которую необходимо так округлить?

  Ответить  
 
 автор: akkorn   (11.11.2007 в 14:53)   личное сообщение
 
 

сам написал.. стандартной ф-ции не нашел. Может кому пригодится....

Function Fnc1()
Dim Num1 As Double
Num1 = "35,6"

If Int(Num1) = Num1 Then
MsgBox Num1, , "="
Else
MsgBox Int(Num1) + 1, , ">"
End If

End Function

  Ответить  
 
 автор: ДрЮня   (11.11.2007 в 21:30)   личное сообщение
 
 

можно и так:
num1=CInt(num + 0.5)

  Ответить  
 
 автор: alecks_lp   (12.11.2007 в 10:39)   личное сообщение
 
 

или так


'D - количество знаков после разделителя

Public Function BRound(ByVal X As Double, Optional ByVal D As Integer = 0) As Double
     
    BRound = Fix(X * 10 ^ D + 0.5 * Sgn(X)) / 10 ^ D

End Function

  Ответить  
 
 автор: akkorn   (12.11.2007 в 19:34)   личное сообщение
 
 

to alecks_lp

не-а, не работает. Число 10,2 переводит в 10, а не 11!!

  Ответить  
 
 автор: ГлазастыйМышь   (13.11.2007 в 09:11)   личное сообщение
 
 

пусть х - нужное число, тогда

int(x) + iif(x-int(x)>0,1,0)

  Ответить  
 
 автор: alecks_lp   (13.11.2007 в 16:37)   личное сообщение
11 Кб.
 
 

да, действительно, дал универсальный округлитель, а задача -то другая!
ну, тогда примерно так

Public Function BRound(ByVal X As Double) As Long
    BRound = Int(X) - ((X - Int(X)) > 0)
End Function

  Ответить  
 
 автор: akkorn   (13.11.2007 в 19:30)   личное сообщение
 
 

Ага, пасибо.
Работает и тот и другой способ.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList