vb货币数字转换:把1234变成¥1,234.00,代码就这么写
vb货币数字转换:把1234变成¥1,234.00,代码就这么写
搞了这么多年VB,货币数字转换被问得最多。说白了就是把数据库里的1234.56显示成"¥1,234.56",看着简单,精度和负数处理不踩坑根本过不去。
最基础的做法是用Format函数:Format(1234.56,"#,##0.00"),前头拼个"¥"就行。但货币符号经常要动态切换,硬编码太死板。我习惯把符号和格式串分开存,运行时再拼接,改起来省事。

精度是个大坑。数据库存Decimalvb货币数字转换,VB里默认跑成Double,尾数一多就冒出0.300000000000004这种鬼。所以转货币之前先Round,别嫌多此一举,对账差一分钱够你哭半天。
千分位分隔符在不同区域设置下会变vb货币数字转换:把1234变成¥1,234.00,代码就这么写,逗号可能变点。我后来统一在代码里锁定区域格式,别依赖系统默认。负数显示建议用括号"(-1,234.00)",比光秃秃的减号清楚多了。
导出报表时记住,Format出来的字符串只能拿来显示,不能存回去算。我见过同事把"¥1,234.00"直接写进数据库,后面排序全乱套。算完再转,转完别存回去,这条血泪教训够我写两篇博客。