fixed a bug in ave char count, refactored reading from file method, and all methods that return floats now accept precision argument