2016-06-06 63 views
0

我的數據庫包含的燃料單價通常以小數點後的價格結尾,例如每加侖2.099美元。我使用內置的FORMAT調用來指定語言環境。這不允許我使用超過2位小數的貨幣格式。有沒有辦法來覆蓋這個?或者我堅持基於許多可能的語言環境做一些自定義格式?在FORMAT調用中指定貨幣的小數位數

考慮這個例子:

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

Standard Numeric Format Strings允許您指定的精度。使用C3作爲格式來代替:

DECLARE @fuelPrice FLOAT = 2.099 
SELECT FORMAT(@fuelPrice, 'C3', 'en-US') 
0

任何機會,你可以做到這一點,如果你這樣做的唯一原因是爲了顯示的目的?

DECLARE @fuelPrice FLOAT = 2.099 
SELECT '$' + cast(@fuelprice as varchar(10)) 
+0

在我實際的代碼,區域設置並不總是'EN-US'這麼硬編碼'$'是不是一種選擇。它需要反映區域的貨幣符號,有時在十進制值之後顯示。 – djs