add decimal number support, fix #21