我正在使用以下代码,但我遇到的问题是它显示值$1,099.00
作为值,
以下是我正在使用的代码:
#LSCurrencyFormat(DecimalFormat(unitprice),'local','#session.currencylocale#')#
使用上面的代码,我收到以下错误:
The value 1,099.00 cannot be converted to a number.
我尝试将DecimalFormat()包装在外面,但这只是给了我一个不同的错误。
答案 0 :(得分:1)
尝试
#LSCurrencyFormat(LSParseNumber(unitprice),'local','#session.currencylocale#')#
或者这只是删除逗号。
#LSCurrencyFormat(Replace(unitprice,",","","ALL"),'local','#session.currencylocale#')#
如果这不起作用,您可以使用它从字符串中删除所有非数字友好符号
#LSCurrencyFormat(ReReplace(unitprice,"[^0-9\.\-\+]","","ALL"),'local','#session.currencylocale#')#
编辑:Dan对于decimalformat是正确的,可能正确的是它是你的错误的来源(我们不知道#unitprice#本身是什么样的)。使用数字时,请始终确保以最简单的形式存储它们,并且只显示带有十进制格式的##,如果这是您的偏好。
例如,如果我有用户输入金额,特别是金额,我会在将金额插入数据库之前使用其中一个来清除多余的字符。
当然,正如Leigh在下面的评论中指出的那样,您应该始终将数字存储在数据库提供程序的正确数据类型中(类型为int和money)。您应该在字段和正确的字段类型中存储1099.42而不是$ 1,099.42。