fix the problem of float accuracy