需要貨幣金額轉換成數字
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