meet C++11
use "bankers' rouding"
fix floating-point field width error