如何让数字4位一分(有难度)(100)

  • 主题发起人 主题发起人 zbdzjx
  • 开始时间 开始时间
Z

zbdzjx

Unregistered / Unconfirmed
GUEST, unregistred user!
今天突然有个想法,能不能让数字4位一分,一般数字都是3位一分的。如:12345678903位一分,是:1,234,567,8904位一分,是:12,3456,78904位一分,有点符合中国人的习惯(以万为单位),不象外国人的习惯(以千为单位)。我试了formatfloat,如果是formatfloat('#,###',1234567890),结果是1,234,567,890;如果是formatfloat('#,####',1234567890),结果还是1,234,567,890。不知大家有没有好的办法,当然,如果用循环或是复杂的办法能做到,但有没有简单的办法。
 
自己做个小函数,把数字变成string, 再把 逗号 加进去就行了呵呵
 
function fmtrmb(const V : Currency):string;var i : Integer; p : Integer;begin Result := FormatCurr('#.#',V); p := Pos('.', Result); if p < 1 then p := Length(Result) + 1; for i := p - 1 downto 2 do if (p-i) mod 4 = 0 then Insert(',', Result, i);end;
 
就是对字符串的操作嘛,用个循环就搞定了不用循环的话,我想应该没什么简单的方法了就像轻舞肥羊写的其实就很简单了啊
 
看看formatfloat怎么写的,稍微改动下,自己写一个。
 
噢,是我没完全说明白。主要是还有个问题,如果转换成字符串了,那排序就会乱了,我还是想用数值型,但只是显示效果改一下。如果在adoquery中加上字段名,然后设置显示效果,我没有试,我只是试了一下formatfloat。
 
其实大家都习惯这种方式了,楼主就将就了吧。
 
谁叫计算机是老外先发明的呢..
 
回hhjjhhjj 其实我们都习惯了,只是老板不习惯,他想要这个效果,但被我们给否定了。
 
如果是在dbgrid单元格里,可以参考财务表格画竖线的方法
 
后退
顶部