Format 函数

将数字转换成字符串,然后根据指定的格式对其进行格式化。

语法:


Format (Number [, Format As String])

返回值:

字符串

参数:

数字」:要转换成格式化字符串的数字表达式。

Format: 指定 Number 格式代码的字符串。如果不指定「Format」,Format 函数的功能类似于 Str」函数。

格式化代码

以下列表说明了可以用来格式化数字的代码:

0:Number」中,如果与格式代码中的 0 相对应的位置上有数字,则显示该数字,否则显示零。

如果「数字」表达式中小数点任意一侧的位数小于格式代码中零的个数,将显示前置零或后置零。如果 Number 中小数分隔符左侧的位数多于格式代码中零的个数,则不加修改地显示多余的位。

Number 中小数部分的取整取决于「Format」中小数分隔符后面出现的零的个数。

#: 如果 Number」中与「Format」的 # 占位符相对应的位置上有数字,则显示该数字,否则此位置不显示任何值。

此符号的功能与 0 类似,不同的是,当格式代码中的 # 通配符位数多于 Number 中的数字位数时,不显示前置零或后置零,而只显示有关的数字。

.」: 小数占位符用于确定小数分隔符左边和右边的位数。

如果格式代码中此符号左边仅含有 # 占位符,则纯小数将以小数分隔符作为起始字符。要使小数始终显示有前置零,请用 0 作为小数分隔符左边第一位的占位符。

%」: 将数字乘以 100,并在格式代码中该数字出现的位置处插入百分号 (%)。

E- E+ e- e+ 」: 如果格式代码中含有符号 E-、E+、e- 或 e+ 且符号右边至少含有一位占位符 (0 或 #),则将数字格式化为科学计数法或指数格式,并在数字和指数之间插入字母 E 或 e,指数位数取决于符号右边占位符的位数。

如果指数为负数,则在包含 E-、E+、e- 和 e+ 的指数前显示减号。如果指数为正数,则仅在包含 E+ 或 e+ 的指数前显示加号。

如果格式代码中含有分隔符且分隔符前后有数字占位符 (0 或 #),则会显示千位分隔符。

句点是否用作千位分隔符和小数分隔符取决于所在的地区设置。当直接在 Basic 源代码中输入数字时,始终使用句点作为小数分隔符。而实际的小数分隔符取决于系统中设置的数字格式。

- + $ ( ) 空格」: 直接在格式代码中输入的加号 (+)、减号 (-)、美元符号 ($)、空格或括号会显示为文字字符。

要显示此处所列字符以外的字符,则必须在字符前加反斜杠 (\),或在字符前后加引号 (" ")。

\ : 显示格式代码中反斜杠后面的字符。

要将格式代码中具有特殊含义的字符作为文字字符显示,必须在这些字符前加上反斜杠。反斜杠本身并不会显示,除非在格式代码中输入两个反斜杠 (\\)。

在格式代码中,希望显示为文字字符而必须在前面加反斜杠的字符包括日期、时间格式化字符 (a、c、d、h、m、n、p、q、s、t、w、y、/、:) 、数字格式化字符 (#、0、%、E、e、逗号、句点) 和字符串格式化字符 (@、&、<、>、!)。

您也可以使用以下预定义数字格式。除 "General Number" 之外,所有预定义格式代码返回的数字都带有两位小数。

在使用预设格式时,格式名称的前后需要加上引号。

预定义格式

General Number」: 显示格式与输入格式相同的数字。

Currency」: 在数字前插入美元符号并在负数前后加上括号。

Fixed」: 小数分隔符前至少显示一位数字。

Standard」: 显示数字时带有千位分隔符。

Percent」: 将数字乘以 100,并附加百分号。

Scientific」:以科学计数法格式显示数字 (例如,1000 显示为 1.00E+03)。

格式代码由三部组合成,各部分之间用分号分隔。三个部分依次定义正数、负数和零的格式。如果仅指定一种格式代码,则所有数字都将采用这种代码。

您可以在 - 语言设置 - 语言中设置用于控制 LibreOffice Basic 中的数字、日期及货币格式的locale. 在Basic的格式化代码中,总是使用点号 (.) 作为您的locale中定义的小数点符号的「占位符」,并且在实际使用中将会被替换为locale设置中对应的字符。

同样适用于日期、时间和货币格式的区域设置。Basic 格式的代码的解释和显示将遵循您的区域设置。

错误代码:

5 无效的过程调用

示例:


Sub ExampleFormat
    MsgBox Format(6328.2, "##,##0.00")
    ' 在 Basic 源代码中输入数字时,总是使用英文句号作为小数分隔符。
    ' 例如,在英语区域设置下显示为「6,328.20」,在德语区域设置下显示为「6.328,20」。
End Sub

请支持我们!