我有一个包含3个文本文件的用户表单。 txtCurrentSum
,txtTargetVal
和txtDelta
。我在窗体打开时初始化了文本框值。
delta
应为零,但txtDelta
文本框显示4,99999999999545E-03
我如何规避这种侮辱?
'Variable Definitions
Private originalSum As Double
Private targetSum As Double
Private precision As Integer
Private delta As Double
Private Sub UserForm_Initialize()
originalSum = 311.135
targetSum = originalSum
delta = targetSum - originalSum
precision = 2
txtCurrentSum.Text = Format(Hammer.originalSum, "#,##0.00")
txtTargetVal.Text = Format(targetSum, "#,##0.00")
txtDelta.Text = Format(delta, "#,##0.00")
End Sub
我没有在表单的objectView / Properties中设置数字格式,因为我会以编程方式更改它们。
在其他子程序中发现问题。当我初始化文本框时,显然会触发Sub txtTargetVal_AfterUpdate()
事件。 {sub} {}已更新delta
。我在这里添加round
来解决问题。
' Target Value Changed
'
Private Sub txtTargetVal_AfterUpdate()
targetSum = CDbl(txtTargetVal.Text)
txtDelta.Text = targetSum - originalSum
End Sub
此处我使用txtDelta.Text = targetSum - originalSum
txtDelta.Text = Round(targetSum - originalSum, precision)
答案 0 :(得分:2)
由于输出需要两位小数,请写
txtDelta.Text = Format(Round(delta, 2), "#,##0.00")
而不是txtDelta.Text = Format(delta, "#,##0.00")