Round是用来处理浮点计算的,如果不处理,原本一个29.9,它能给你算成29.899500000012345.
如果字段属性是文本格式,你再怎么round都没用,所以在这之前,你得把文本类型的字段,转成数字类型的字段.方法也很简单,比如 [字段]*1.但是这里又会产生一个新的问题,比如字段下面有null值或者其他不能转成数字的值的话,就又会 #错误 .所以一方面要求我们在定义字段的数据类型时,要严谨.另一方面,自己做出来的表,脆着也要走完...那就处理错误呗.
VAL函数:
- VAL函数会忽略字符串中的前导空格。
- 它会解析数字之前的正负号(“+/-”)。
- 如果字符串以非数字字符开始,
Val
函数将返回 0。 - 如果字符串以数字字符开始,但在解析过程中遇到非数字字符,
Val
函数将返回数字解析到的最后一个有效字符之前的部分。Dim num As Double num = Val("123.45") ' 将字符串转换为数值,num 的值为 123.45 Dim str As String str = "abc123" num = Val(str) ' 尝试从字符串中解析数字,由于字符串以非数字字符开始,num 的值为 0 str = "12.34xyz" num = Val(str) ' 尝试从字符串中解析数字,但解析到非数字字符 "x" 时停止,num 的值为 12.34 str = " -45.67" num = Val(str) ' 将带有前导空格和负号的字符串转换为数值,num 的值为 -45.67
NZ函数:
- NZ函数用于处理空值(Null)。它接受两个参数:表达式和替代值。如果表达式的值为 Null,NZ 函数将返回替代值,否则返回表达式的值。
- NZ函数的返回值类型与第一个参数的数据类型相同。如果第一个参数为 Null,则返回值的数据类型为第二个参数的数据类型。如果第一个参数和第二个参数都为 Null,则返回值的数据类型由上下文决定。
但是我在日常应该中,经常遇到在使用 nz([字段],0) 时,返回给我一个文本类型的值,我不知道是什么原因.所以我不得不这样去使用它 : Round(Nz([查询1].[单价], 0)*1,2) .其中NZ是把null值转成0,结果返回的却是"0",所以我不得不再 *1 之后 再Round
标签:Val,VAL,函数,ACCESS,NZ,num,str,数字 From: https://www.cnblogs.com/yoooos/p/17611049.html