Multiply/add float to convert int to float rather than casting to float to prevent loss of integer precision issues.
Check for progress block before attempting to call it.