我在网上搜索了一下,发现很少有人处理这个问题。 我想知道是否有任何更深层次的问题,我不知道以这种方式获得结果。 [总计] 变量表示计算出的总欠款。 PayAmt 代表客户在仅支付现金时将支付的费用。
PayAmt: FormatCurrency(
IIf(Right(Str(Round([total],2)),1)="1",[total]-1,
IIf(Right(Str([total]),1)="2",[total]-2,
IIf(Right(Str([total]),1)="3",[total]+2,
IIf(Right(Str([total]),1)="4",[total]+1,
IIf(Right(Str([total]),1)="6",[total]-1,
IIf(Right(Str([total]),1)="7",[total]-2,
IIf(Right(Str([total]),1)="8",[total]+2,
IIf(Right(Str([total]),1)="9",[total]+1,[total])))))))))/100
从表面上看,这确实给出了预期的结果,我只是不确定我是否应该以这种方式处理这个问题?
0.98 - 1.02 = 1.00
1.03 - 1.07 = 1.05
没有见过这样的事情,我怀疑不可能这么容易。 我只是不知道为什么。
感谢您的任何帮助!
切勿对数字使用字符串处理。
这是一篇关于认真舍入的文章,包括任何值和数据类型的 VBA 的所有必要代码:
将值向上、向下、四舍五入 4/5 或为有效数字