use float type to reduce memory