我试图在我的程序中递归地添加一些 CGFloat 值。而且我刚刚意识到在一个特定情况下生成的总数是不正确的。为了确保我的程序逻辑没有错误,我创建了一个该场景的简单示例(见下文),并打印了相同的错误值。
CGFloat arr[3] = {34484000,512085280,143011440};
CGFloat sum = 0.0;
sum = arr[0] + arr[1] + arr[2];
NSLog(@"%f",sum);
int arr1[3] = {34484000,512085280,143011440};
int sum1 = 0.0;
sum1 = arr1[0] + arr1[1] + arr1[2];
NSLog(@"%d",sum1);
第一个 NSLog 打印 689580736.000000...而正确的结果是 689580720。但是第二个 NSLog 打印正确的结果。我不确定这是一个错误还是我做错了什么。
谢谢, 穆拉利