fix bug: convertion result is not correct if original number contains decimal part