中易网

VB四舍五入

答案:3  悬赏:70  
解决时间 2021-11-09 11:22
text1=1.58 a=2.0
text1=1.48 a=1.5
text1=2.98 a=3.0
text1=2.11 a=2.5
text1=-1.58 a=-2.0
text1=-1.48 a=-1.5
text1=1.00 a=1.0
求a的函数
小数点尾数是 .0 或 .5
小数点不能是其他的数字
最佳答案
Private Sub Command1_Click()
Dim a As Single
    a = Round(Val(Text1.Text), 1) '四舍五入到小数点后一位:1.58运算结果为1.6,1.48结果为1.5
    If Right(Format(a, "#.#"), 1)  <> "5" Then '判断小数点后一位是否等于5
        a = Round(a) '若大于五,四舍五入到整数:1.6为2,1.5不满足条件,不运算
    End If
    Print Format(a, "0.0") '输出a,格式保留小数点后一位:2输出2.0,1.5还是输出1.5
End Sub其他结果都对,但  text1=2.11        a=2.5  时,结果应该为a=2.0,你是怎么算出结果2.5的?
不知道你的逻辑是什么,下面一段代码可以满足你要求,具体用上一段还是下一段,你自己决定:
Private Sub Command1_Click()
Dim a As Single
    a = Round(Val(Text1.Text), 1) '四舍五入到小数点后一位
    If Right(Format(a, "#.#"), 1) > "5" Or Right(Format(a, "#.#"), 1) = "." Then '判断小数点后一位是否大于5或等于0
        a = Round(a) '若大于五,四舍五入到整数
    Else
        a = Val(Str(Fix(a)) & 0.5) '若小于5且不等于0,则取整,为了省略判断正负号,所以直接转换为字符串处理,再转换回数字类型
    End If
    Print Format(a, "0.0") '输出a,格式保留小数点后一位
End Sub
全部回答
a = Round(Text1.text , 1)
a=fix(val(text1.text)*10)/10
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小宝宝用过什么奶瓶呀?感觉怎么样呀?
尖椒炒肉的家常做法?老公很喜欢吃尖椒炒肉,
振金物流运单号是什么样的
一岁宝宝吃奶不认真,明明很饿,吃了一点点就玩
哪里可以做植发呢?...
扎營的意思是什么?扎營的释义是什么啊?
幼儿园楼梯栏杆高度一般多少
一首歌开头是嘿喂哟嘿喂哟假死贝贝
一个专业的幼教老师和一个业余的幼教老师有什
买房贷款银行利率怎么计算
备孕3个月排卵期同房却没怀孕是怎么
我是2010年4月份初领B2驾驶证现在是多长时间
梦见紫水晶打碎是什么意思?好不好呢?
孩子不喜欢上学怎么办?
美肤宝适合青少年用吗?
推荐资讯
香椿种植
身体很瘦很瘦会是马凡氏综合症
扬州树林装饰装潢工程有限公司评价如何?
济源市城区国家税务局地址在哪,我要去那里办
关于郭敬明的《岛》
林口县工商行政管理局刁翎分局地址有知道的么
﹌信仰丶LoVe。﹏配情侣名
家用增压泵什么牌子好,什么增压泵比较静音的
请大家解答一下我的问题:iptV、ott、ott+dvb
听说智居工场可以体验3D云VR智能家装了?
没有高潮时水多可以治吗
我的黑眼圈很重,吃什么可以 改好?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?