我使用双(浮点)变量作为算法,但它给了我这个错误:
[错误]类型无效的操作数' double'和' const char [9]'二进制'运算符!='
那么我应该使用哪个运算符?
- (NSImage *)rotateByDegrees:(CGFloat)degrees
{
NSImage *image = nil;
if (degrees == 0.0)
{
image = self;
}
else
{
CIImage *ciImage = [[[CIImage alloc] initWithData:self.TIFFRepresentation] autorelease];
CGFloat angle = degrees * M_PI / 180.0;
CIImage *output = [ciImage imageByApplyingTransform:CGAffineTransformMakeRotation(angle)];
image = [[[NSImage alloc] initWithSize:NSMakeSize(self.size.width * fabs(cos(angle)) + self.size.height * fabs(sin(angle)), self.size.width * fabs(sin(angle)) + self.size.height * fabs(cos(angle)))] autorelease];
[image addRepresentation:[NSCIImageRep imageRepWithCIImage:output]];
}
return image;
}
答案 0 :(得分:1)
C ++中的“普通旧数据”(POD)类型,例如double
,int
,char
等,不包含任何关于它们所代表的事物的语义信息;或者换句话说,一个数字只是一个数字。
如果你想带一些语义和你的号码 - 例如,你想要一个代表'真实'(温度,速度,方向,CPU周期等)的数字,那么你需要将其存储在不同类型的变量中(std::string
适用于您的程序)
即。
std::string a, b;
double Spa, Tim, Acc, Vel1, Vel2, Velocity, Space, Acceleration;
您需要确保始终将a
和b
与字符串进行比较:
if (a == "Velocity")
{
和..
cout << "With space or acceleration value?\n" << endl;
cin >> b;
if (b == "Space")
{
另外,请注意不要在;
语句末尾添加分号if ()
。