VFP的STR函数是怎么回事?
STR(<数值表达式>[,<总长度>[,<其中小数位数>]])函数作用是将数值表达式转换为指定长度和小数位数的字符串,其中总长度的默认值是10,小数位数的默认值为0,并且在实际操作中,总长度要大于或等于数值表达式的整数部分的长度,才能完成命令。
1、如果总长度大于数值表达式长度或大于数值表达式整数部分和指定小数部分的长度总和,若此时数值的小数位少于指定的小数位数,那么要将它补齐,添加“0”到最低位即最右边;如果数值的小数位等于指定的小数位数,那么多余的字节应该放到最高位即最左边,为空格。
2、如果总长度小于数值表达式长度,特别注意在转换取值的时候,是从左往右算起的,而且遵循四舍五入的原则,也就是说,假如指定的小数位数比从左往右取完整数后剩下的位数要多,实际保留的小数只能占总长度减去整数部分后的长度,如果超出了就四舍五入到剩下的位数。
其中小数点算一位。如果最后一位数是小数点“.”的话,那么应该舍去小数点,把多出的那一个字节放在最高位(即最左边),即此时最高位为空格。
用法:
str()将数值型转换为字符型的函数,如str(123.45)="123"
括号内共有3个参数,str(数值型数据,转换后字符的长度,保留的小数位置),如果省略后两个参数,则转换为长度为10,保留到整数位。如:
str(123.456,6,2)="123.46"&&小数点占一位
str(123.456)="123"
扩展资料:
STR(nExpression[,nLength[,nDecimalPlaces]])
参数
nExpression
指定STR()要计算的数值表达式。
nLength
指定STR()返回的字符串长度。如果省略nLength,则nLength默认为10个字符。注意:
如果表达式包含小数点,该长度包括小数点所占的字符和小数点右边每个数字所占的字符。
nDecimalPlaces
指定由STR()返回的字符串中的小数位数。若要用nDecimalPlaces指定小数位数,必须同时包含nLength。如果nDecimalPlaces省略,则默认的小数位为零(0)。
注意:
VisualFoxPro在数值计算中包含16位精度的限制。关于VisualFoxPro的数值精度的更多信息。
括号内共有3个参数,str(数值型数据,转换后字符的长度,保留的小数位置) ,如果省略后两个参数,则转换为长度为10,保留到整数位。如:
str(123.456,6,2)="123.46" &&小数点占一位
str(123.456)=" 123"
返回与指定数值表达式对应的字符。
STR(nExpression [, nLength [, nDecimalPlaces]])
返回值
字符型
参数
nExpression
STR( ) 要计算的数值表达式。
nLength
STR( ) 返回的字符串长度。该长度包括小数点所占的字符和小数点右边每个数字所占的字符。
如果指定长度大于小数点左边数字位数,STR( ) 用前导空格填充返回的字符串;如果指定长度小于小数点左边的数字位数,STR( ) 返回一串星号,表示数值溢出。
如果 nExpression 是数值型或浮点型, 如果 nLength 小于 nExpression 中的小数位数 STR() 用科学符号返回结果。如果 nExpression 是整型, 如果 nLength 小于 nExpression 中的数值, STR() 返回一个星号串, 说明数值溢出。
如果未包括 nLength, 字符串的长度默认为 10 个字符。
nDecimalPlaces
由 STR( ) 返回的字符串中的小数位数。若要指定小数位数,必须同时包含 nLength。
如果指定的小数位数小于 nExpression 中的小数位数,则舍入后截去多余的小数。
如果未包含 nDecimalPlaces, 默认的小数位为零。