需要货币金额转换成数字
tranamt(数字,12,2)和tranamt2(人物)
首先一个既不是字符字段类型,也不是一个数字字段类型(tranamt2)不是VFP 货币字段类型
您可能正在使用字段字段的值来表示货币,但这不会使其成为货币值 - 只是字符串值。
通常当这样做完成后,您不会将美元符号'$'和逗号'''作为数据的一部分存储。
而是存储“原始”值(在本例中为“-710000.99”),并且只需要格式化该“原始”值在需要时的显示方式。
因此,在您的字符字段中,您的值为: - $ 710,000.99
您是否将美元符号'$'和逗号'''作为字段数据的一部分?
如果是这样,要将其转换为数字,您首先必须在转换之前消除那些无关字符。
如果它们不作为字段值的一部分存储,那么可以使用VAL()'原样'。
实施例:
cStr = "-710000.99" && The '$' and ',' are NOT stored as part of Character value
nStr = VAL(cStr)
?nStr
但是,如果你有美元符号和逗号作为场数据本身的一部分,则可以使用STRTRAN()来在转换过程中消除它们。
例子:
cStr = "-$710,000.99" && Note both '$' and ',' are part of data value
* --- Remove both '$' and ',' and convert with VAL() ---
nStr = VAL(STRTRAN(STRTRAN(cStr,",",""),"$",""))
?nStr
也许是这样的:
REPLACE tranamt WITH VAL(STRTRAN(STRTRAN(tranamt2,",",""),"$",""))
编辑:另一种方法是使用CHRTRAN()删除 '$' 和 ''
东西如:
cRemoveChar = "$," && Characters to be removed from String
REPLACE tranamt WITH VAL(CHRTRAN(tranamt2,cRemoveChar,""))
好运
我不得不添加VAL()的前面,但它工作,谢谢。 – Nick
是的,我注意到我错过了并编辑它,但显然它没有及时获得批准。很高兴工作! – Steve