Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
Objective c sqrtf(6)*sqrtf(6)!=6英寸xcode_Objective C_Macos_Xcode4_Sqrt - Fatal编程技术网

Objective c sqrtf(6)*sqrtf(6)!=6英寸xcode

Objective c sqrtf(6)*sqrtf(6)!=6英寸xcode,objective-c,macos,xcode4,sqrt,Objective C,Macos,Xcode4,Sqrt,我试图创建一个软件来显示两个向量之间的角度,当它们等于1,1,2时,它就不起作用了,因此这个向量的模是sqrtf6,它的值是2.449490,应该是2.44948974278318 有没有办法提高这种操作的精度 在我的软件的下一步中,我将执行以下操作: float angle = acos(dot/(modulus1*modulus2)); 如果modules1==module2,那么modules1*modules2=dot,但在某些值上不会发生 我希望我说清楚了 提前感谢,, Gruber

我试图创建一个软件来显示两个向量之间的角度,当它们等于1,1,2时,它就不起作用了,因此这个向量的模是sqrtf6,它的值是2.449490,应该是2.44948974278318

有没有办法提高这种操作的精度

在我的软件的下一步中,我将执行以下操作:

float angle = acos(dot/(modulus1*modulus2));
如果modules1==module2,那么modules1*modules2=dot,但在某些值上不会发生

我希望我说清楚了

提前感谢,,
Gruber

如果您想要更高的精度,可以使用double。但是,请注意,浮点数上的==操作的工作方式与整数类型不同。使用ε调整微小差异。

如果您想要更高的精度,可以使用double。但是,请注意,浮点数上的==操作的工作方式与整数类型不同。使用ε调整微小差异。

上面的文章详细说明了,但要注意舍入错误。使用双64或十进制80/128?上面的文章详细说明了,但要注意舍入错误。使用双64或十进制80/128?对于浮点和整数类型==操作的效果完全相同;当且仅当值相等时,它返回true。区别在于程序员对所涉及的实际值的直觉常常是错误的,因为大多数程序员从来都不想真正理解浮点。@StephenCanon:这就是我的意思。但我想我应该补充一点小但重要的澄清。这里的主要问题是2.4494897和Xcode一直显示2.449490。。。我尝试了所有的数据类型,但也没有成功。我真的很感谢你的帮助。@EltonGruber:你的意思是调试器正在显示2.449490吗?那可能是个错误。尝试打印精确值,并使用足够高精度的说明符。现在,正如我前面所说的,您可能需要使用一些ε来解释浮点表示不精确的事实。@非常感谢您这么快的回答。。。我试图使用NSLog@%Lf,var。对于浮点和整型,==操作的工作原理完全相同;当且仅当值相等时,它返回true。区别在于程序员对所涉及的实际值的直觉常常是错误的,因为大多数程序员从来都不想真正理解浮点。@StephenCanon:这就是我的意思。但我想我应该补充一点小但重要的澄清。这里的主要问题是2.4494897和Xcode一直显示2.449490。。。我尝试了所有的数据类型,但也没有成功。我真的很感谢你的帮助。@EltonGruber:你的意思是调试器正在显示2.449490吗?那可能是个错误。尝试打印精确值,并使用足够高精度的说明符。现在,正如我前面所说的,您可能需要使用一些ε来解释浮点表示不精确的事实。@非常感谢您这么快的回答。。。我试图使用NSLog@%Lf,var。