为什么用Str函数将0.03转化为字符串后却变成了.03了,丢了个前面的0

kangfx 2004-06-21 10:20:20
本来转化后应该也为0.03,但却变成了.03我该如何做???
...全文
173 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
踏平扶桑 2004-06-25
  • 打赏
  • 举报
回复
//MSDN

格式化数字、日期和时间


在显示数字的格式上,象日期和时间的格式一样,Visual Basic 也提供了巨大的灵活性。对于数字、日期和时间,可以很容易用国际格式来显示。

Format 函数把数字值转换为文本字符串,从而能够对该字符串的外观进行控制。例如,可以指定小数的位数、前导和尾部零,以及货币格式。它的语法是:

Format(expression[, format]

expression 参数指定要转换的数值,format 参数是字符串,该串是由一些符号组成的,这些符号用于说明如何确定该数字的格式。下表列出了一些最常使用的一些符号。

符号 描述
0 数字保留区,如果恰当,在本位置打印尾部或前导零。
# 数字保留区,不打印尾部或前导零。
. 小数保留区。
, 千位分隔符。
– + $ ( ) space 字母字符,各种字符,都要按格式字符串中打入的原样,精确地显示出来。


firstdayofweek 参数是指定本星期第一天的常数,而 firstweekofyear 参数是指定本年度第一天的常数。两者都是可选的。关于这些常数的更详细信息,请参阅《语言参考》的“Format 函数”。

命名的格式
Visual Basic 提供了几种与 Format 函数一起使用的标准格式。在 Format 函数的 format 参数中,可使用名字来指定这些格式,而不用在 format 参数中指定符号。格式名总是用双引号 ("") 括起来。

下面的表格列出了可使用的格式名。

命名的格式 描述
General Number 显示没有千位分隔符的数字。
Currency 显示带千位分隔符的数字;在小数点的右边显示两位数字。而输出则依据用户的系统设置。
Fixed 在小数点的左边至少显示一位数字,在小数点的右边显示两位数字。
Standard 显示带千位分隔符的数字,在分隔符的左边至少显示一位数字,而在分隔符的右边至少显示两位。
Percent 该值乘以 100,在后面加上一个百分号。
Scientific 用标准的科学记数法。
General Date 如果 expression 同时包含了日期和时间,则显示它们。如果 expression 只包含日期或只包含时间,则缺少的信息不显示。日期的显示取决于用户的系统设置。
Long Date 使用用户的系统设置所指定的 Long Date 格式。
Medium Date 使用 dd-mmm-yy 格式(例如,03-Apr-93)。日期的显示取决于用户的系统设置。
Short Date 使用用户的系统设置所指定的 Short Date 格式。
Long Time 用用户系统的长时间格式显示时间,包括时、分、秒。
Medium Time 使用 hh:mm AM/PM 格式,显示小时、分钟和 AM 或 PM。
Short Time 使用 hh:mm 格式,显示小时和分钟。
Yes/No 任何非零数字值(通常是 -1)为 Yes,零为 No。
True/False 任何非零数字值(通常是 -1)为 True,零为 False。
On/Off 任何非零数字值(通常是 -1)为 On,零为 Off。


Format 函数还支持其它许多特殊字符,如百分比保留区和指数。

详细信息 请参阅《语言参考》的“Format 函数”。

数字的格式
以下数字转换的假设是,Windows“控制面板”中的“区域”,被设为“英语(美国)”。

格式语法 效果
Format(8315.4, “00000.00”) 08315.40
Format(8315.4, “#####.##”) 8315.4
Format(8315.4, “##,##0.00”) 8,315.40
Format(315.4,“$##0.00”) $315.40


小数分隔符是句号 (.),千位分隔符是逗号 (,)。然而,分隔符的正确显示得依 Windows“控制面板”中的“区域”的设置而定。

打印格式化的日期和时间
为了打印有格式化的日期和时间,应使用具有代表日期和时间符号的 Format 函数。以下示例用 Now 和 Format 函数来标识和格式化当前的日期和时间。下述示例的假设是,Windows“控制面板”中,“区域设置”对话框中的设置为“英语(美国)”。

格式语法 效果
Format(Now, “m/d/yy”) 1/27/93
Format(Now, “dddd, mmmm dd, yyyy”) Wednesday, January 27, 1993
Format(Now, “d-mmm”) 27-Jan
Format(Now, “mmmm-yy”) January-93
Format(Now, “hh:mm AM/PM”) 07:18 AM
Format(Now, “h:mm:ss a/p”) 7:18:00 a
Format(Now, “d-mmmm h:mm”) 3-January 7:18


通过使用“dddd”和“ttttt”格式的 Now 函数,可以把当前日期和时间,按照在 Windows“控制面板”中的“区域设置”对话框内所选择的相应格式,进行打引。

国家/地区 格式语法 效果
Sweden Format(Now, “ddddd ttttt”) 1992-12-31 18.22.38
United Kingdom Format(Now, “ddddd ttttt”) 31/12/92 18:22:38
Canada (French) Format(Now, “ddddd ttttt”) 92-12-31 18:22:38
United States Format(Now, “ddddd ttttt”) 12/31/92 6:22:38 PM


详细信息 当使用 Format 函数时,有关国际问题的详细信息,请参阅“国际化”中的“区域识别函数”。有关基于系统本地日期的详细信息,请参阅“国际化”中的“用 Visual Basic 编写国际代码”。
evbsky 2004-06-25
  • 打赏
  • 举报
回复
CStr()
mmcgzs 2004-06-25
  • 打赏
  • 举报
回复
format(数字,"0.00")
wolfhero 2004-06-25
  • 打赏
  • 举报
回复
另:
控制面板--区域设置--数字---零起始显示 改成 0.7
frankwong 2004-06-24
  • 打赏
  • 举报
回复
format(金额,"Fixed") '显示格式:123456.78
format(金额,"Standard") '显示格式:123,456.78
ryuginka 2004-06-24
  • 打赏
  • 举报
回复
format(数字,"0.00")
happywqw 2004-06-24
  • 打赏
  • 举报
回复
同意楼上各位的。
使用Format()函数。
lujianyu1189 2004-06-24
  • 打赏
  • 举报
回复
用FORMAT格式化字符就行。
StarRib 2004-06-24
  • 打赏
  • 举报
回复
'*********************************************************
'* 名称:Format_
'* 功能:保留两位小数格式
'* 用法:Format_(NUM)
'*********************************************************
Public Function Format_(num As String) As String
Format_ = Format(num, "0.#0")
End Function

Text1.Text = Format_(str(0.03))
sikychen 2004-06-24
  • 打赏
  • 举报
回复
用format函数吧。format(数字,"0.00")

7,763

社区成员

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

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