类型的操作数无效' double'和' const char [13]'到二元'运算符!='

时间:2016-12-03 10:54:02

标签: c++

我使用双(浮点)变量作为算法,但它给了我这个错误:

  

[错误]类型无效的操作数' 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;
}

1 个答案:

答案 0 :(得分:1)

C ++中的“普通旧数据”(POD)类型,例如doubleintchar等,不包含任何关于它们所代表的事物的语义信息;或者换句话说,一个数字只是一个数字。

如果你想带一些语义和你的号码 - 例如,你想要一个代表'真实'(温度,速度,方向,CPU周期等)的数字,那么你需要将其存储在不同类型的变量中(std::string适用于您的程序)

即。

std::string a, b;
double Spa, Tim, Acc, Vel1, Vel2, Velocity, Space, Acceleration;

您需要确保始终将ab与字符串进行比较:

if (a == "Velocity")
{

和..

    cout << "With space or acceleration value?\n" << endl;
    cin >> b;
    if (b == "Space")
    {

另外,请注意不要在;语句末尾添加分号if ()