iPhone编程中意外的浮动行为?

时间:2011-09-20 07:51:09

标签: iphone ios

我在ViewDidLoad中只写了这四行,并面临意外的输出,

    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];


         float a = 15.264;
    NSLog(@"FLoat is %f",a);

        float b = 10/60;
    NSLog(@"FLoat is %f",b);
   }

在第一个浮点数a中显示正确的值,该值被分配给a,但是b显示为0.0000,为什么?

4 个答案:

答案 0 :(得分:3)

如果要声明浮点数,则应使用以下格式声明它们:x.xf。 E.g float b = 10.0f/60.0f

答案 1 :(得分:2)

您正在将整数除法的结果赋给float,这意味着,结果将在分配之前被截断。换句话说,10/60 0.1666...会产生结果0,然后将其分配给b。因此,b的值为零。

答案 2 :(得分:2)

由于两个操作数都是整数,因此除法的结果是整数(0)。如果你想要你的师的浮动结果你应该使用

float b = 10.0/60.0

甚至

float b = 10.0/60

因为你需要至少有一个操作数是浮动的。

答案 3 :(得分:1)

试试这个,

浮动b = 10.0 / 60.0,

bcox,只需10/60 return int