四舍六入五成双自定义函数解决方法

在记录数据和计算结果时,一旦有效数字的位数确定后,其后面的数字要按照(四舍六入五成双)的法则修约。如:若修约到小数点后两位,23.234--(23.23)、23.225--(23.22)、23.2251--(23.23)。自定义函数要怎么写呢

北梦 发布于 2022-4-14 17:28
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
fiskerLv4见习互助
发布于2022-4-14 20:06(编辑于 2022-4-21 16:29)

https://help.fanruan.com/finereport/doc-view-827.html

ROUND5

不过这是四舍五入,奇进偶不进的方案

=====================================

四舍六入五成双的JS方案

function evenRound(num, decimalPlaces) {

var d = decimalPlaces || 0;

var m = Math.pow(10, d);

var n = +(d ? num * m : num).toFixed(8); // Avoid rounding errors

var i = Math.floor(n), f = n - i;

var e = 1e-8; // Allow for rounding errors in f

var r = (f > 0.5 - e && f < 0.5 + e) ?((i % 2 == 0) ? i : i + 1) : Math.round(n);

return d ? r / m : r;

}

  • 北梦 北梦(提问者) 计算单元格B1-B5的数值JS方案要怎么应用呢
    2022-04-14 23:20 
  • fisker fisker 回复 北梦(提问者) num是值,decimalPlaces是保留的位数
    2022-04-15 20:12 
最佳回答
0
助人为乐Lv4中级互助
发布于2022-4-14 17:36(编辑于 2022-4-14 17:45)

你之前的提问。给你回复你没回,又开一个问题~~~没去实际操作过这个。有个思路不知能否帮到你。先在在数据库里面用case when  截取字符串判断。image.png

  • 北梦 北梦(提问者) 你是不是弄错了呀~~~
    2022-04-14 17:40 
  • 北梦 北梦(提问者) 这个不是我的问题,数据库的好解决,我的意思是用自定义函数~~!
    2022-04-14 17:52 
  • 3关注人数
  • 640浏览人数
  • 最后回答于:2022-4-21 16:29
    请选择关闭问题的原因
    确定 取消
    返回顶部