當然可以直接操作字串,每隔三位加乙個逗號進去,不過感覺有些麻煩了。今天正好遇到使用者有這個需求,在網上搜了一下,找到乙個簡單的辦法,經測試ok,簡單實現**如下:
data: v_c(20) type c,
v_n type p decimals 2.
v_n = 5422121.23.
write v_n to v_c.
write v_c.
原來只要採用write方式賦值,就可以保留千位符,呵呵。不過,文字型的變數不能是string型的,只能是c型的,不然會報錯。
手工的辦法也不是沒有,網上也找到了乙個函式,沒有測試,僅供參考:
form numtostr using value(znum) changing value(zstr).
data : zclen type i,
n type i,
zcstr(20) type c,
zcstr2(20) type c,
zctemp(3) type c,
zflag(1) type c value '.',
zflag2 type i value 0,
zcdec(20) type c. "記錄小數部分.
zstr = ''.
check znum <> 0.
if znum <= -1000.
zflag2 = 1.
znum = abs( znum ).
endif.
if znum >= 1000.
zcstr = znum.
"壓縮字串,去除前面的空格。
condense zcstr no-gaps.
" 分離整數與小數,好單獨處理整數。
split zcstr at zflag into zcstr zcdec.
zclen = strlen( zcstr ).
" 在迴圈中從右面在每三位的前面加上乙個逗號。
while zclen > 3.
n = zclen - 3.
zctemp = zcstr+n(3).
if not zcstr2 is initial.
concatenate zctemp zcstr2 into zcstr2 separated by ','.
else.
zcstr2 = zctemp.
endif.
zclen = zclen - 3.
endwhile.
" 將不剩下的不足三位數加到前面
concatenate zcstr+0(zclen) zcstr2 into zcstr2 separated by ','.
if zflag2 = 1.
concatenate '-' zcstr2 into zcstr2.
endif.
clear zcstr.
" 將處理過的整數與小數連線起來。
concatenate zcstr2 zcdec into zcstr separated by zflag.
" 將值返回
zstr = zcstr.
else.
zstr = znum.
endif.
endform.
數字型轉文字型,如何保留千位符
數字型轉文字型,如何保留千位符 當然可以直接操作字串,每隔三位加乙個逗號進去,不過感覺有些麻煩了。今天正好遇到使用者有這個需求,在網上搜了一下,找到乙個簡單的辦法,經測試ok,簡單實現 如下 data v c 20 type c,v n type p decimals 2.v n 5422121.2...
Oracle數字型,字元型,日期型函式
一.數字型函式 在oracle資料庫中,dual表示真實存在的,它本身包含了乙個dummy欄位,如果使用者刪除了該錶,則oracle將無法啟動。下面記錄的是部分函式。mod n1,n2 求餘,當n2為0時,返回的是n1。sign n 函式,返回引數n的符號。即正數返回1,負數返回 1,0就返回0。r...
sql數字型 字元型注入的區別
當輸入的參 x 為整型時,通常 abc.php 中 sql 語句型別大致如下 select from 表名 where id x 這種型別可以使用經典的 and 1 1 和 and 1 2 來判斷 url 位址中輸入 www.com abc.php?id x and 1 1 頁面依舊執行正常,繼續進...