簡體   English   中英

SQL只獲得2位小數且無舍入

[英]SQL get decimal with only 2 places with no round

我有一個返回小數的查詢( SQL Server )。 我只需要2個小數而不舍入:

在此處輸入圖片說明

在上面的示例中,我需要獲取: 3381.57

有什么線索嗎?

您可以通過ROUND()函數使用length和precision參數來截斷值而不是實際舍入來完成此操作:

SELECT ROUND(3381.5786, 2, 1)

第二個參數2表示該值將四舍五入到小數點后兩位,第三個precision參數將指示是否執行了實際的四舍五入或截斷(非零值將截斷而不是四舍五入)。

在此處輸入圖片說明

您可以在此處查看此操作的交互式示例

如果要控制表示形式,則需要將值輸出為字符串。 一種方法是先轉換為十進制,然后轉換為字符串:

select cast(cast(total as decimal(10, 2)) as varchar(255))

另一種方法是使用str()轉換為字符串。 但是,這通常需要刪除空格:

select replace(str(total, 10, 2), ' ', '')

另一種可能性是使用TRUNCATE

SELECT 3381.5786, {fn TRUNCATE(3381.5786,2)};

LiveDemo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM