如何确定浮点数中小数点右边的数字?

时间:2014-11-02 08:50:58

标签: mysql sql

我搜索了整个Stack Overflow站点,找不到一条关于使用MySQL确定浮点数的正确部分的帖子。

假设我有一个浮点数,例如3.1416。我只需要一个将返回1416的MySQL函数。

我尝试使用MySQL的SUBSTRING功能,但问题是:这个解决方案不是动态的。

假设,对于名为constant_value的表中名为Physics的列,我使用以下查询:

SELECT SUBSTRING(constant_value, 2) FROM Physics

对于3.1416,它将返回1416,但对于21.436,它将返回1.436。但我希望它返回436。

修改

尝试了Andrew MortonRafiq Vai的解决方案。两者都返回相同的输出。

似乎我无法在问题中解释我的问题。这不是我正在寻找的尾数。它是我想要的小数点右边的文本。

如果constant_value = 3.1416,我想要一个将返回1416而不是0.1416的MySQL函数。 Andrew和Rafiq Vai的解决方案给了我0.1416,而我正在寻找1416。

2 个答案:

答案 0 :(得分:2)

SELECT abs(constant_value)-floor(abs(constant_value)) FROM Physics

答案 1 :(得分:2)

从MySQL 3.23.51开始(因为,从该版本开始,该函数实际上向零舍入),您可以使用TRUNCATE函数:

SELECT constant_value - TRUNCATE(constant_value, 0) FROM Physics