Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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 在浮子上工作很辛苦_Objective C - Fatal编程技术网

Objective c 在浮子上工作很辛苦

Objective c 在浮子上工作很辛苦,objective-c,Objective C,我真的不知道该叫什么名字 我正在检查两个浮点数的值是否相同。如果使用printf()或NSLog(),则值返回0.750000。但是,类似于if(value1==value2){return TRUE;}的行不起作用。我可以假设,实际上,浮点数超过了7位小数,并且printf()/NSLog()不能返回超过7位小数的值 我试着用谷歌搜索一种方法,看看如何将浮点数减少到小数点后的较小数量,或者简单地将其转换为另一种数据类型,但到目前为止,我没有得到这样的运气 您可以确定ε的最大值,在该值下,数字等

我真的不知道该叫什么名字

我正在检查两个浮点数的值是否相同。如果使用
printf()
NSLog()
,则值返回0.750000。但是,类似于
if(value1==value2){return TRUE;}
的行不起作用。我可以假设,实际上,浮点数超过了7位小数,并且
printf()
/
NSLog()
不能返回超过7位小数的值


我试着用谷歌搜索一种方法,看看如何将浮点数减少到小数点后的较小数量,或者简单地将其转换为另一种数据类型,但到目前为止,我没有得到这样的运气

您可以确定ε的最大值,在该值下,数字等于。像

  #define EPSILON 0.0001

  if (fabs(floatA - floatB) < EPSILON) { retun TRUE; }
#定义ε0.0001
if(fabs(floatA-floatB)
fabs(x)
返回
double
x的绝对值


您可能还希望使用
double
而不是
float
数据类型(
double
float
大小的两倍)。

您可以确定一个ε,它是数字等于的最大值。像

  #define EPSILON 0.0001

  if (fabs(floatA - floatB) < EPSILON) { retun TRUE; }
#定义ε0.0001
if(fabs(floatA-floatB)
fabs(x)
返回
double
x的绝对值


您可能还希望使用
double
而不是
float
数据类型(
double
float
大小的两倍)。

在比较浮点数时,需要使用容差:

if (Abs(value1 - value2) < epsilon)
{
}
if(Abs(值1-2)

其中epsilon是一个值,如0.000001,当您比较浮点数时,需要使用公差:

if (Abs(value1 - value2) < epsilon)
{
}
if(Abs(值1-2)

其中epsilon是一个值,例如0.000001

您可能希望查看
float.h
(http://www.gnu.org/software/libc/manual/html_node/Floating-Point-Parameters.html)对于ε的非任意定义。特别是,
FLT\u EPSILON
FLT\u DIG
您可能想看看
float.h
(http://www.gnu.org/software/libc/manual/html_node/Floating-Point-Parameters.html)对于ε的非任意定义。特别是,
FLT\u EPSILON
FLT\u DIG

叹息。。。叹息。。。