Sql 复合年增长率返回无效的浮点操作
我试图计算复合年增长率。某些值可以正常工作,但一组特定的数字(以及其他一些数字)正在生成错误: 发生无效的浮点操作 我尝试了各种方法来转换这些值,但仍然会出现错误Sql 复合年增长率返回无效的浮点操作,sql,sql-server,math,Sql,Sql Server,Math,我试图计算复合年增长率。某些值可以正常工作,但一组特定的数字(以及其他一些数字)正在生成错误: 发生无效的浮点操作 我尝试了各种方法来转换这些值,但仍然会出现错误 SELECT CAST( POWER ( CAST((0.2142 / -1.38613) as float), CAST(1 as float)/(2015-2012) ) as float) - 1 根据一些手工计算(除非我是个十足的白痴),我希望结果是-1.5366261528。。。我也不太关心小数点后4位的舍入。我认为问
SELECT CAST( POWER (
CAST((0.2142 / -1.38613) as float),
CAST(1 as float)/(2015-2012)
) as float) - 1
根据一些手工计算(除非我是个十足的白痴),我希望结果是-1.5366261528。。。我也不太关心小数点后4位的舍入。我认为问题在于虚数。当你能把一个负数提高到1/3的幂,那么你就得到了一个没有虚部的负数 但是,1/3不能完美地表示为浮点。当你把一个负数提高到0.3333,你会得到一个虚数,而这个虚数不能用浮点数来表示
你能用一个正数来做这个操作吗?我认为是负数,希望有一种方法可以像Excel那样绕过它,但我只是想扔掉任何负数。你偶然发现了一个很有趣的错误。O_O F.e.
POWER(-1.0E0,2.0E0)
和POWER(1.0E0,2.1E0)
都可以工作,但POWER(-1.0E0,2.1E0)
崩溃。我想知道数学家是否能想出一个解决这个问题的公式。