FAQ > 金融建模 > 建模问题 > 精度

Q:天软控制数值精度(四舍五入)的模型说明    

  • A:天软目前提供以下模型对数值数据的精度处理:
    模型说明算法备注
    RoundTo四舍五入,可控制整数和小数银行家算法四舍五入【注1】
    SetPrecision截断小数点位数银行家算法四舍五入【注1】
    FloatN四舍五入后保留小数位数银行家算法四舍五入【注1】
    Round取整银行家算法四舍五入【注1】
    Round32取整后返回32位整型数字银行家算法四舍五入【注1】
    Round64取整后返回64位整型数字银行家算法四舍五入【注1】
    SimpleRoundTo四舍五入,可控制整数和小数四舍五入,尾数是5就进一
    SimpleRound32取整后返回32位整型数字四舍五入,尾数是5就进一
    SimpleRound64取整后返回64位整型数字四舍五入,尾数是5就进一
    ToSTN可将实数保留小数位数后转为字符串四舍五入,尾数是5就进一
    SimpleRoundTo2四舍五入,正负有别正负数不对称算法【注2】
    【注1】:银行家算法四舍五入:四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一
    【注2】:正负数不对称算法:四舍六入,五向较大的数进位(正负有别,如保留一位小数时+0.05)
    实现范例
    范例01:银行家算法:控制整数精度
    Return RoundTo(1234567.3,3);
    //结果:1235000
    范例02:银行家算法:截断小数点位数
    Return setPrecision(123.44500,2);
    //123.44
    范例03:银行家算法:四舍五入后保留小数位数
    Return FloatN(12.66501,2);
    //结果:12.67
    范例04::银行家算法:取整
    Return Round(4.5);
    //结果:4
    范例05:银行家算法:取整后返回64位整型数字
    Return Round64(4.5);
    //结果:4L
    范例06:尾数是5就进一法对小数部分四舍五入
    return SimpleRoundTo(-1.2450,-2);
    //结果:-1.25
    范例07:尾数是5就进一法取整后返回64位整型数字
    return SimpleRound64(4.5);
    //结果:5L
    范例08:实数保留小数位数后转为字符串
    Return toSTN(1.2355,2);
    //结果:'1.24'
    范例09:正负数不对称算法:正数四舍五入
    Return SimpleRoundTo2(1234.56589654,-2);
    //结果:1234.57
    范例10:正负数不对称算法:负数四舍五入
    Return SimpleRoundTo2(-1234.5658965,-2);
    //结果:-1234.56