保留小数问题

保留四位数字,假如原来的数字是221.111则保留成221.1,原来数字是1.23575,则保留成1,236,总之留下四位数字,且做四舍五入,这种方式如何实现,

FineReport 破壁人罗辑 发布于 2024-1-3 15:23
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
ID1208Lv6高级互助
发布于2024-1-3 15:26(编辑于 2024-1-3 16:00)

image.png

=if(find(".",$$$)=5,round($$$,0),if(find(".",$$$)>5,left($$$,4),if(right(left($$$,6),1)>=5,ROUNDUP(left($$$,6),5-find(".",$$$)),left($$$,5))))

  • 破壁人罗辑 破壁人罗辑(提问者) 如果数字是2222.111得到的结果就是2222.1了
    2024-01-03 15:31 
  • ID1208 ID1208 回复 破壁人罗辑(提问者) 更新了,试试
    2024-01-03 16:00 
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-1-3 15:24(编辑于 2024-1-3 15:25)

image.png

ROUND(number,num_digits):返回某个数字按指定位数舍入后的数字。

number:需要进行舍入的数字。

num_digits:指定的位数,按此位数进行舍入。

如果 num_digits 大于 0,则舍入到指定的小数位。

如果 num_digits 等于 0,则舍入到最接近的整数。

如果 num_digits 小于 0,则在小数点左侧进行舍入。

示例:

ROUND(2.15, 1) 等于 2.2

ROUND(2.149, 1) 等于 2.1

ROUND(-1.475, 2) 等于 -1.48

ROUND(21.5, -1) 等于 20

因浮点数存在精度计算丢失问题, 导致计算结果里可能带上9999, 0000这些, 

因此加入第三个参数来控制是否需要去除9999. true表示需要过滤9999, 0000这些数据.

最佳回答
0
帆软用户FSeepKI7ocLv2见习互助
发布于2024-1-3 16:07(编辑于 2024-1-3 16:09)

我建议:直接数据操作(先进行round()的四舍五入运算,后直接截取四位长度的字符串)

substr(round(a.xxx),0,4)

  • 4关注人数
  • 274浏览人数
  • 最后回答于:2024-1-3 16:09
    请选择关闭问题的原因
    确定 取消
    返回顶部