Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 复合年增长率返回无效的浮点操作_Sql_Sql Server_Math - Fatal编程技术网

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)
崩溃。我想知道数学家是否能想出一个解决这个问题的公式。