簡體   English   中英

如何提取double的小數位

[英]How to extract fractional digits of double

我需要在SQL中擴展double的小數部分,但不能使用“ 0”。 例如:數字:5.67整數:5事實:67

在大多數數據庫中,您可以使用如下所示的內容:

select cast((x - floor(x)) * 100 as int)

在SQL Server中,您還有其他選擇。 例如,要獲取小數部分,可以使用%

select (x % 1)

要獲得兩位數:

select floor(100 * (x % 1)) -- or perhaps round()

要么:

select (x * 100) % 100
SELECT 5.67 AS Doubles, CAST(5.67  AS INT) AS Fractional_Only, 
PARSENAME(5.67,1) AS DECIMAL_ONLY  

這將在oracle中工作:

select substr(to_char(5.67),instr(to_char(5.67),'.')+1) from dual;

檢查http://sqlfiddle.com/#!4/e2ac5e/1074

對於mssql:

select substring(CONVERT(varchar, 25.65),CHARINDEX('.', CONVERT(varchar, 25.65))+1,5);

http://sqlfiddle.com/#!18/9eecb/41866

檢查最后一個:

select substring(CONVERT(varchar, (15+15)/2.0),
                 CHARINDEX('.', CONVERT(varchar, (15+15)/2.0))+1,1);

http://sqlfiddle.com/#!18/9eecb/41875

暫無
暫無

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

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