The problem is in the code that sets the bartf value in the dictionary.
THIS:
bart = [dict objectForKey:@"bartf"] ? [[dict objectForKey:@"bartf"] floatValue] : 0.42;
explains why it never changes. [dict objectForKey:@"bartf"] is always null.
Make sure your code is updating that dictionary correctly. To debug add a:
NSLog(@"%@", dict);
after where you create this dictionary, and make sure the value is there.