求函数

suisuibianbian 2003-12-23 03:29:07
把小数向上约去,如a=1.1,变成2,b=4.6变成5
...全文
57 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
youchenglong 2003-12-30
  • 打赏
  • 举报
回复
把数先变成负数,再取整...
但如果这数是负数呢?
我想还是用简单点的方法好
if a1>int(a1) then a1=a1+1
if a1<int(a1) then a1=a1-1
pasl 2003-12-30
  • 打赏
  • 举报
回复
Int 函数,Fix 函数示例
本示例说明 Int 及 Fix 函数在返回某数值的整数部分时有何不同。当参数为负数时,Int 函数返回小于或等于该参数之最大整数,而 Fix 函数则返回大于或等于该参数之最小整数。

Dim MyNumber
MyNumber = Int(99.8) ' 返回 99。
MyNumber = Fix(99.2) ' 返回 99。

MyNumber = Int(-99.8) ' 返回 -100。
MyNumber = Fix(-99.8) ' 返回 -99。

MyNumber = Int(-99.2) ' 返回 -100。
MyNumber = Fix(-99.2) ' 返回 -99。
引自MSDN
longki 2003-12-30
  • 打赏
  • 举报
回复

算法不是很难哦!
Greaitm 2003-12-30
  • 打赏
  • 举报
回复
int(2+1)不就变成3了吗?所以不对
用我的方案:
-(int(-2))还是等于2
-(int(-2.1))却等于3

现在还是人类 2003-12-29
  • 打赏
  • 举报
回复
问题解决了吗?
northwolves 2003-12-29
  • 打赏
  • 举报
回复
int(x+1) 不就行了嘛!!!!
Greaitm 2003-12-23
  • 打赏
  • 举报
回复
引申一下可以对负数做一些修改 楼主自己想吧
Greaitm 2003-12-23
  • 打赏
  • 举报
回复
如果都是正数的话:
-(int(-a))
就可以了
986753421 2003-12-23
  • 打赏
  • 举报
回复
我记得有这个函数,查一下MSDN吧,记得好像有个和Int()相关的函数中有相关的说明。
机子上没装MSDN,自己查一下看。
现在还是人类 2003-12-23
  • 打赏
  • 举报
回复
看来搂主并不想四舍五入就想取整数,并且想在原先的整数位加一
因为搂主的其中一个例子是:如a=1.1,变成2
看看这个怎么样
Public Function Int2(Data As String) As Long
Dim X() As String, XLen As Long
X = Split(Data, ".")
On Error GoTo OneLen
XLen = UBound(X)
If Int(X(XLen)) <> 0 Then
Int2 = Int(X(LBound(X))) + 1
Else
Int2 = Int(X(LBound(X)))
End If
Exit Function
OneLen:
Int2 = Int(X(LBound(X)))
End Function
xshhui 2003-12-23
  • 打赏
  • 举报
回复
a = -(Int(-a))
iceman4 2003-12-23
  • 打赏
  • 举报
回复
Function IntUp(i as single)
if int(i)=i then
IntUP=i
else
IntUP=int(i)+1
endif
end function
首先判别是否为整数,如果是即为该值;否则取整后加1
flc 2003-12-23
  • 打赏
  • 举报
回复
再关注
danielinbiti(金)的方法是比较好的,我的思路中存在着缺陷当小数为11。001 或者是小数点后有两位或更多位的时候并且小数点后第一位为零的时候就不行了,除非val*1000或者乘以更大的参数。还是danielinbiti(金)的方法比较好。
danielinbiti 2003-12-23
  • 打赏
  • 举报
回复
Function allin(i As Single)
Dim a As Single
a = -i
allin = -Int(a)
End Function
Private Sub Command1_Click()
Dim a As Single
a = Trim(Text1.Text)
Print Round(allin(a))
End Sub
原理把数先变成负数,再取整,然后再变回来就成了
davidlv 2003-12-23
  • 打赏
  • 举报
回复
a=round(a+0.5,0)
flc 2003-12-23
  • 打赏
  • 举报
回复
不知道是否有这样的函数,
你可以按照这个思路来写一个函数也可以实现:
val 为一个小数
inttemp 为一个整形变量
inttemp=int(val)
if inttemp*10 <val*10 then
inttemp=inttemp+1
endif
inttemp 就是所求的值
flc 2003-12-23
  • 打赏
  • 举报
回复
关注

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧