如何提取值中小数点后的第一个数字

How to extract first number after decimal point in value

我有一个年龄列,它计算每个成员的年龄,在我的 report.The 输出中是一个整数,后跟一个小数点和数字。我只想要小数点后的第一个数字。

我试过 trunc 但它给了我小数点前的所有内容,然后是我想要的数字。然后我尝试用逗号调用 trunc 但它不起作用。

trunc(年龄,',')

示例 -

15.7 岁

预期输出 7

试试下面的方法

select substr(to_char(15.7,'9999.0'),-1,1) as col from dual
 it will return 7

这里是数学答案

  • 取小数部分取整(trunc)。

  • 乘以10取整

.

with age as (select 15.7231 age from dual)
select trunc(10*(age-trunc(age))) dp1  from age

       DP1
----------
         7

乘以 10,将其截断并将除法的余数除以 10。

with age as (select 15.7231 age from dual)
select mod(trunc(10*age), 10) dp from age

输出:

DP
--
 7