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