精易论坛

标题: 四舍六入五成双 [打印本页]

作者: 新纪元    时间: 2017-7-20 20:42
标题: 四舍六入五成双
  
子程序名返回值类型公开备 注
四舍六入文本型 
参数名类 型参考可空数组备 注
原数值文本型
保留小数位数整数型
变量名类 型静态数组备 注
临时文本型 
文本型 
修约位整数型 
原 = 到半角 (原数值)
临时 = 取文本左边 (原, 寻找文本 (原, “.”, , ) + 保留小数位数)  ' //先不管规则,取出相应位数数值。
临时 = 临时 + 取重复文本 (保留小数位数 ��� (取文本长度 (临时)寻找文本 (原, “.”, , )), “0”)  ' //位数不足用0补齐
修约位 = 到数值 (取文本中间 (原, 取文本长度 (临时) + 1, 1))  ' //取出修约位。
如果真 (修约位 > 5)
返回 (到文本 (到数值 (临时)求次方 (0.1, 保留小数位数)))  ' //大于5,进位。
如果真 (修约位 = 5 到数值 (取文本右边 (原, 取文本长度 ()取文本长度 (临时) - 1)) ≠ 0)
返回 (到文本 (到数值 (临时)求次方 (0.1, 保留小数位数)))  ' //等于5且后面有不为0的数值,进位。
如果真 (修约位 = 5 到数值 (取文本右边 (原, 取文本长度 ()取文本长度 (临时) - 1)) = 0)
如果 (到数值 (取文本右边 (临时, 1)) % 2 = 0)
返回 (临时)  ' //等于5且后面为0,但左边是偶数,舍去。
返回 (到文本 (到数值 (临时)求次方 (0.1, 保留小数位数)))  ' //等于5且后面为0,但左边是奇数,进位。

返回 (临时)  ' //小于5,舍去。



.版本 2

.子程序 四舍六入, 文本型
.参数 原数值, 文本型
.参数 保留小数位数, 整数型
.局部变量 临时, 文本型
.局部变量 原, 文本型
.局部变量 修约位, 整数型

原 = 到半角 (原数值)
临时 = 取文本左边 (原, 寻找文本 (原, “.”, , 假) + 保留小数位数)  ' //先不管规则,取出相应位数数值。
临时 = 临时 + 取重复文本 (保留小数位数 - (取文本长度 (临时) - 寻找文本 (原, “.”, , 假)), “0”)  ' //位数不足用0补齐
修约位 = 到数值 (取文本中间 (原, 取文本长度 (临时) + 1, 1))  ' //取出修约位。
.如果真 (修约位 > 5)
    返回 (到文本 (到数值 (临时) + 求次方 (0.1, 保留小数位数)))  ' //大于5,进位。
.如果真结束
.如果真 (修约位 = 5 且 到数值 (取文本右边 (原, 取文本长度 (原) - 取文本长度 (临时) - 1)) ≠ 0)
    返回 (到文本 (到数值 (临时) + 求次方 (0.1, 保留小数位数)))  ' //等于5且后面有不为0的数值,进位。
.如果真结束
.如果真 (修约位 = 5 且 到数值 (取文本右边 (原, 取文本长度 (原) - 取文本长度 (临时) - 1)) = 0)
    .如果 (到数值 (取文本右边 (临时, 1)) % 2 = 0)
        返回 (临时)  ' //等于5且后面为0,但左边是偶数,舍去。
    .否则
        返回 (到文本 (到数值 (临时) + 求次方 (0.1, 保留小数位数)))  ' //等于5且后面为0,但左边是奇数,进位。
    .如果结束

.如果真结束
返回 (临时)  ' //小于5,舍去。



作者: 往昔丶    时间: 2017-7-22 06:26
我去,标题我看的头晕了!~
作者: 交流3366    时间: 2017-7-22 09:13
学习一下,谢谢楼主

作者: 杨杨杨    时间: 2017-7-22 14:42
四舍六入五成双,鸡进狗不进
作者: Y1269    时间: 2023-5-22 11:35
如果我要修约3.1415926,保留小数点后3位,在编辑框224里面显示结果应该怎么弄啊




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4