|
|
|
| Добрый день!
Есть числа (к примеру):
1,1
1,7
как из них получить 2
2,1
2,7
как из этих двух получить 3 ???
В тоже время, если число будет равняться 1, то должна выйти 1
(или если число 2, то должно получиться число 2)
Кто знает как написать ф-цию с передаваемой переменной, которую необходимо так округлить? | |
|
| |
|
|
|
| сам написал.. стандартной ф-ции не нашел. Может кому пригодится....
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 | |
|
| |
|
|
|
| можно и так:
num1=CInt(num + 0.5) | |
|
| |
|
|
|
| или так
'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
|
| |
|
| |
|
|
|
| to alecks_lp
не-а, не работает. Число 10,2 переводит в 10, а не 11!! | |
|
| |
|
|
|
| пусть х - нужное число, тогда
int(x) + iif(x-int(x)>0,1,0)
|
| |
|
| |
|
11 Кб. |
|
| да, действительно, дал универсальный округлитель, а задача -то другая!
ну, тогда примерно так
Public Function BRound(ByVal X As Double) As Long
BRound = Int(X) - ((X - Int(X)) > 0)
End Function
|
| |
|
| |
|
|
|
| Ага, пасибо.
Работает и тот и другой способ. | |
|
| |