操作数数据类型float对于'^'运算符无效。

3
我正在寻找浮点类型的限制,但是我找不到任何关于^操作符的帖子。
我有一个小数学表达式:
((@IntVar*((@FloatVar*1)/1200))*((1+((@FloatVar*1)/1200))^@IntValr))/(((1+((@FloatVar*1)/1200))^@IntVar)-1);

并且SQL引发了错误:

数据类型float和int在运算符^中不兼容。

之后,我更改了变量类型,新公式为:

((@IntVar*((@FloatVar*1)/1200))*((1+((@FloatVar*1)/1200))^@FloatValr))/(((1+((@FloatVar*1)/1200))^@FloatVar)-1);

但是SQL又出现了错误:
操作数数据类型float对于^运算符无效。
我的第一个问题是,如何解决这个错误? 之后,有人知道float或decimal类型的操作数的限制吗?

2
我最好的猜测是 ^ 不会做你所猜测的事情 运算符 ;) - SomeJavaGuy
3
你是在尝试使用 ^ 作为指数运算符吗? - Mureinik
@KevinEsche,为什么它不起作用?这是一个简单的公式。你能解释一下吗? - Ali.azimi
4
@Ali.azimi - 其他人试图告诉你的是,你正在寻找POWER。仅仅因为你熟悉另一种语言,其中^是指数运算符,并不意味着你工作的每一种编程语言都必须赋予该字符相同的含义。 - Damien_The_Unbeliever
@ShakeerMirza 我想说:操作数 ^ 不适用于浮点型和十进制类型。为什么? - Ali.azimi
显示剩余7条评论
1个回答

3

如果你想使用指数函数,你必须使用SQL SERVER的power函数。

请看这里


是的。正如你和其他朋友所说,这是关于SQL语言及其运算符的误解。 - Ali.azimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接