四舍五入,保留二位小数

jumay 2007-10-24 11:04:45
我是用VB+SQL编程的:text3.text=text1.text * text2.text,计算结果text3四舍五入保留二位小数,请问代码要如何写
...全文
326 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2007-10-26
  • 打赏
  • 举报
回复
都快变成 RoundUP 了:Round(123.451+0.005,2) = 123.46
GuiltyGear 2007-10-26
  • 打赏
  • 举报
回复
那么就先加上0.005再做Round

myval = 123.4567
Text1.Text = Round(myval+0.005,2)


最原始的方法,直接判断也行……(-__-b)
Tiger_Zhao 2007-10-26
  • 打赏
  • 举报
回复
VB 的 Round 是四舍六入五成双(Bank Round),不符合题意
Round(123.455,2) = Round(123.465,2) = 123.46
GuiltyGear 2007-10-26
  • 打赏
  • 举报
回复
同意楼上
zdingyun 2007-10-25
  • 打赏
  • 举报
回复
Tiger_Zhao(VB老鸟)
SORY,眼看化了。
Tiger_Zhao 2007-10-25
  • 打赏
  • 举报
回复
明明是 123.46,你用的什么 VB?哪种四舍五入能将 123.4567 变成 123.47?
zdingyun 2007-10-25
  • 打赏
  • 举报
回复
Tiger_Zhao(VB老鸟),请检验如下程式,Text1.Text中显示的是123.45未见Format 会自动处理四舍五入成123.47
Private Sub Command1_Click()
Dim sj As Double
sj = 123.4567
Text1.Text = Format(sj, "#.00")
End Sub
Tiger_Zhao 2007-10-25
  • 打赏
  • 举报
回复
Format 会自动处理四舍五入,自己计算反而有浮点误差。
zdingyun 2007-10-25
  • 打赏
  • 举报
回复
Option Explicit
Dim sj As Double
Private Sub Command1_Click()
sj = Int((Val(Text1.Text) * Val(Text2.Text)) * 100 + 0.50001) / 100
Text3.Text = Format(sj, "#.00")
End Sub
ZOU_SEAFARER 2007-10-25
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim sj As Double
sj = 123.4567
Text1.Text = Round(sj, 2)
End Sub
Tiger_Zhao 2007-10-24
  • 打赏
  • 举报
回复
text3.text=format(text1.text * text2.text, "0.00")
shawls 2007-10-24
  • 打赏
  • 举报
回复


注意一个数值,就是.5的处理,非常微妙啊


我一般会这样:

if isnumbic(text1.txt) then
if isnumbic(text2.txt) then
text3.txt=fix(text1.txt*text2.txt*100+5)/100
end if
end if
guyehanxinlei 2007-10-24
  • 打赏
  • 举报
回复
来晚了……
of123 2007-10-24
  • 打赏
  • 举报
回复
text3.text=format(text1.text * text2.text, "standard")

7,763

社区成员

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

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