vb format函数
我遇到一个麻烦,我在使用format函数的时候出现这么一个情况。比如a=0.120,我想把a输出为a=00.1200,但我使用format函数a=format(a,“00...
我遇到一个麻烦,我在使用format函数的时候出现这么一个情况。
比如a=0.120,我想把a输出为a=00.1200,但我使用format函数
a=format(a,“00.0000”) 后,a却输出成 .12,前面和后面的0都给我省略了,我很晕,求高手请教
问题是a是我的程序中的一个中间量,是单精度,为什么在计算过程中a显示为a=.12
b=2*a 当我令b=format(b,“00.0000”) 后,b还是输出为b=.24,我很奇怪 展开
比如a=0.120,我想把a输出为a=00.1200,但我使用format函数
a=format(a,“00.0000”) 后,a却输出成 .12,前面和后面的0都给我省略了,我很晕,求高手请教
问题是a是我的程序中的一个中间量,是单精度,为什么在计算过程中a显示为a=.12
b=2*a 当我令b=format(b,“00.0000”) 后,b还是输出为b=.24,我很奇怪 展开
3个回答
展开全部
VB中format函数
函数
Format 函数
语法
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
函数功能
事实上Format方法有两种形式,另外一种是三个参数的,主要区别在于它是线程安全的, 但并不多用,所以这里只对第一个介绍。Format参数是一个格式字符串,用于格式化Args里面的值的。Args是一个变量数组,即它里面可以有多个参数,而且每个参数可以不同。 例如:
Format("my name is %6s","wind");
返回的是:my name is wind
expression 必要参数。任何有效的表达式。
format 可选参数。有效的命名表达式或用户自定义格式表达式。
firstdayofweek 可选参数。常数,表示一星期的第一天。
firstweekofyear 可选参数。常数,表示一年的第一周。
format 参数有下面设置:
(0)
数字占位符。显示一位数字或是零。如果表达式在格式字符串中 0 的位置上有一位数字存在,那么就显示出来;否则,就以零显示。如果数值的位数少于格式表达式中零的位数(无论是小数点的左方或右方),那么就把前面或后面的零补足。如果数值的小数点右方位数多于格式表达式中小数点右面零的位数,那么就四舍五入到有零的位数的最后一位。如果数值的小数点左方位数多于格式表达式中小数点左面零的位数,那么多出的部分都要不加修饰地显示出来。
(#)
数字占位符。显示一位数字或什么都不显示。如果表达式在格式字符串中“#”的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。
此符号的工作原理和“0”数字占位符大致相同,不同之处只有在当表达式中数值的位数少于“#”的位数(无论是小数点左方或右方)时,不会把前面或后面的零显示出来。
(.)
小数点占位符。在一些国别是用逗号来当小数点的。小数点占位符用来决定在小数点左右可显示多少位数。如果格式表达式在此符号左边只有正负号,那么小于 1 的数字将以小数点为开头。如想在小数前有“0”的话,那么请在小数点占位符前加上“0”这个数字占位符。小数点占位符的实际字符在格式输出时要看系统的数字格式而定。
(%)
百分比符号占位符。表达式乘以 100。而百分比字符 (%) 会插入到格式字符串中出现的位置上。
(,)
千分位符号占位符。在一些国别,是用句点来当千位符号。千位符号主要是把数值小数点左边超过四位数以上分出千位。如果格式中在数字占位符(0 或 #)周围包含有千分位符号,则指定的是标准的千分位符号使用法。两个邻近的千分位符号或一个千分位符号紧接在小数点左边(不管小数位是否指定),其意思为“将数值除以 1000,按需要四舍五入”。例如,可以用格式字符串 "##0,," 将 1 亿表示成 100。数值小于 1 百万的话表示成“0”,两个邻近的千分位符号除了紧接在小数点左边以外,在任何位置出现时均简单地视为指定了使用千分位符号。小数点占位符的真正字符在格式输出时,需视系统识别的数字格式而定。
(:)
时间分隔符。在一些国别,可能用其他符号来当时间分隔符。在格式化时间值时,时间分隔符可以用来分隔时、分和秒。时间分隔符的真正字符在格式输出时,取决于系统的设置。
(/)
日期分隔符。在一些国别,可能用其他符号来当日期分隔符。在格式化日期数值时,日期分隔符可以用来分隔年、月、日。日期分隔符的真正字符在格式输出时,取决于系统设置。
(E- E+ e- e+)
科学格式。如果格式表达式在 E-、E+、e- 或 e+ 的右方含有至少一个数字占位符(0 或 #),那么数值将表示成科学格式,而 E 或 e 会被安置在数字和指数之间。E 或 e 右方数字占位符的个数取决于指数位数。使用 E- 或 e- 时,会用减号来表示负的乘幂。使用 E+ 或 e+ 时,会用减号来表示负的乘幂并用加号来表示正的乘幂。
- + $ ( )
显示一个原义字符。如想显示那些列出的字符之外的字符时,可以用反斜杠 ( \ ) 字符作前缀或以双引号 (" ") 括起来。
(\)
将格式字符串中下一个字符显示出来。如想显示一作为原义字符并有特殊含义的字符,可将此字符置于反斜杠 (\) 之后。反斜杠本身并不会显示出来。而使用反斜杠 (\) 的效果和使用双引号是一样的。如想显示反斜杠字符,可使用两个反斜杠 (\\)。
那些不能显示为原义字符的字符是日期格式字符和时间格式字符(a, c, d, h, m, n, p, q, s, t, w, y, / 和 :)、数值格式字符(#, 0, %, E, e, 逗点和句点)和字符串格式字符(@, &, <, > 和 !)。
("ABC")
显示双引号 (" ") 之内的字符串。如在代码中想在 format 中包含一个字符串,必须用 Chr(34) 将文本括起来(34 为双引号 (") 的字符代码)。
参考:http://wenku.baidu.com/link?url=xm_g_x5DzqsSIXJpCLpmrYYpsYpr_B1RjWTxMHITN-Gv4hLr_H1vjIlp8TVwYvVxa5rHH4cMNFnBCn5VJKSMCJHjhmXWzHQl4L6E0wytc5_
函数
Format 函数
语法
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
函数功能
事实上Format方法有两种形式,另外一种是三个参数的,主要区别在于它是线程安全的, 但并不多用,所以这里只对第一个介绍。Format参数是一个格式字符串,用于格式化Args里面的值的。Args是一个变量数组,即它里面可以有多个参数,而且每个参数可以不同。 例如:
Format("my name is %6s","wind");
返回的是:my name is wind
expression 必要参数。任何有效的表达式。
format 可选参数。有效的命名表达式或用户自定义格式表达式。
firstdayofweek 可选参数。常数,表示一星期的第一天。
firstweekofyear 可选参数。常数,表示一年的第一周。
format 参数有下面设置:
(0)
数字占位符。显示一位数字或是零。如果表达式在格式字符串中 0 的位置上有一位数字存在,那么就显示出来;否则,就以零显示。如果数值的位数少于格式表达式中零的位数(无论是小数点的左方或右方),那么就把前面或后面的零补足。如果数值的小数点右方位数多于格式表达式中小数点右面零的位数,那么就四舍五入到有零的位数的最后一位。如果数值的小数点左方位数多于格式表达式中小数点左面零的位数,那么多出的部分都要不加修饰地显示出来。
(#)
数字占位符。显示一位数字或什么都不显示。如果表达式在格式字符串中“#”的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。
此符号的工作原理和“0”数字占位符大致相同,不同之处只有在当表达式中数值的位数少于“#”的位数(无论是小数点左方或右方)时,不会把前面或后面的零显示出来。
(.)
小数点占位符。在一些国别是用逗号来当小数点的。小数点占位符用来决定在小数点左右可显示多少位数。如果格式表达式在此符号左边只有正负号,那么小于 1 的数字将以小数点为开头。如想在小数前有“0”的话,那么请在小数点占位符前加上“0”这个数字占位符。小数点占位符的实际字符在格式输出时要看系统的数字格式而定。
(%)
百分比符号占位符。表达式乘以 100。而百分比字符 (%) 会插入到格式字符串中出现的位置上。
(,)
千分位符号占位符。在一些国别,是用句点来当千位符号。千位符号主要是把数值小数点左边超过四位数以上分出千位。如果格式中在数字占位符(0 或 #)周围包含有千分位符号,则指定的是标准的千分位符号使用法。两个邻近的千分位符号或一个千分位符号紧接在小数点左边(不管小数位是否指定),其意思为“将数值除以 1000,按需要四舍五入”。例如,可以用格式字符串 "##0,," 将 1 亿表示成 100。数值小于 1 百万的话表示成“0”,两个邻近的千分位符号除了紧接在小数点左边以外,在任何位置出现时均简单地视为指定了使用千分位符号。小数点占位符的真正字符在格式输出时,需视系统识别的数字格式而定。
(:)
时间分隔符。在一些国别,可能用其他符号来当时间分隔符。在格式化时间值时,时间分隔符可以用来分隔时、分和秒。时间分隔符的真正字符在格式输出时,取决于系统的设置。
(/)
日期分隔符。在一些国别,可能用其他符号来当日期分隔符。在格式化日期数值时,日期分隔符可以用来分隔年、月、日。日期分隔符的真正字符在格式输出时,取决于系统设置。
(E- E+ e- e+)
科学格式。如果格式表达式在 E-、E+、e- 或 e+ 的右方含有至少一个数字占位符(0 或 #),那么数值将表示成科学格式,而 E 或 e 会被安置在数字和指数之间。E 或 e 右方数字占位符的个数取决于指数位数。使用 E- 或 e- 时,会用减号来表示负的乘幂。使用 E+ 或 e+ 时,会用减号来表示负的乘幂并用加号来表示正的乘幂。
- + $ ( )
显示一个原义字符。如想显示那些列出的字符之外的字符时,可以用反斜杠 ( \ ) 字符作前缀或以双引号 (" ") 括起来。
(\)
将格式字符串中下一个字符显示出来。如想显示一作为原义字符并有特殊含义的字符,可将此字符置于反斜杠 (\) 之后。反斜杠本身并不会显示出来。而使用反斜杠 (\) 的效果和使用双引号是一样的。如想显示反斜杠字符,可使用两个反斜杠 (\\)。
那些不能显示为原义字符的字符是日期格式字符和时间格式字符(a, c, d, h, m, n, p, q, s, t, w, y, / 和 :)、数值格式字符(#, 0, %, E, e, 逗点和句点)和字符串格式字符(@, &, <, > 和 !)。
("ABC")
显示双引号 (" ") 之内的字符串。如在代码中想在 format 中包含一个字符串,必须用 Chr(34) 将文本括起来(34 为双引号 (") 的字符代码)。
参考:http://wenku.baidu.com/link?url=xm_g_x5DzqsSIXJpCLpmrYYpsYpr_B1RjWTxMHITN-Gv4hLr_H1vjIlp8TVwYvVxa5rHH4cMNFnBCn5VJKSMCJHjhmXWzHQl4L6E0wytc5_
展开全部
Private Sub Form_Click()
a = 0.12
a = Format(a, "00.0000")
b = Format(a, "##.#####")
Print a
Print b
End Sub
你看啊,没有出现你说的情况,你的函数有问题,要使用英文状态的标点符号。你吧我的复制一下看看。
我的使用
a = Format(a, "00.0000")
输出的是00.1200。
使用的
a=format(a,"##.####")
时,才出现你说的情况。
另外问题所在:a是声明为单精度“数据”了,你使用了 a =后,先运行 Format(a, "00.0000")。为 00.2400
继续运行赋值“=”就等到的 00.2400,再判断数据为单精度类型。又 将其强制转换为数值 .20。
方法1:不声明。方法二 使用中间变量 a = Format(a, "00.0000")
改为:b = Format(a, "00.0000")
最后输出b。都能解决、
如果回答对您有用,请给分!
a = 0.12
a = Format(a, "00.0000")
b = Format(a, "##.#####")
Print a
Print b
End Sub
你看啊,没有出现你说的情况,你的函数有问题,要使用英文状态的标点符号。你吧我的复制一下看看。
我的使用
a = Format(a, "00.0000")
输出的是00.1200。
使用的
a=format(a,"##.####")
时,才出现你说的情况。
另外问题所在:a是声明为单精度“数据”了,你使用了 a =后,先运行 Format(a, "00.0000")。为 00.2400
继续运行赋值“=”就等到的 00.2400,再判断数据为单精度类型。又 将其强制转换为数值 .20。
方法1:不声明。方法二 使用中间变量 a = Format(a, "00.0000")
改为:b = Format(a, "00.0000")
最后输出b。都能解决、
如果回答对您有用,请给分!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=format(a,"##.####")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询