我的数据库包含燃料单价,通常以小数便士价值结束,例如每加仑2.099美元。我使用内置的FORMAT
调用来指定语言环境。这不允许我使用超过2位小数的货币格式。有没有办法覆盖这个?或者我是否因为许多可能的语言环境而无法进行一些自定义格式化?
考虑这个例子:
DECLARE @fuelPrice FLOAT = 2.099
SELECT FORMAT(@fuelPrice, 'G', 'en-US') AS 'NoDollarSign'
,FORMAT(@fuelPrice, 'C', 'en-US') AS 'WrongDecimalPlaces'
,'$2.099' as 'WhatIWant'
输出:
NoDollarSign WrongDecimalPlaces WhatIWant
2.099 $2.10 $2.099
答案 0 :(得分:0)
如果您执行此操作的唯一原因是出于显示目的,您是否有机会这样做?
DECLARE @fuelPrice FLOAT = 2.099
SELECT '$' + cast(@fuelprice as varchar(10))
答案 1 :(得分:0)
Standard Numeric Format Strings允许您指定精度。请改用C3
作为格式:
DECLARE @fuelPrice FLOAT = 2.099
SELECT FORMAT(@fuelPrice, 'C3', 'en-US')