四舍六入五成双在excel怎么实现?
发布网友
发布时间:2022-05-31 14:04
我来回答
共4个回答
热心网友
时间:2023-10-16 16:17
1、按ALT+F11
Thisworkbook-插入-模块。
2、将下面代码拷贝进去。
Function TranValue(rng As Double, number As Integer) As Double
TranValue = Round(rng, number)
End Function
3、在电子表格中直接使用公式
= tranvalue(A1,1) ;然后向下拉公式既可以.
热心网友
时间:2023-10-16 16:17
这样最直观:
=INT(A2)+IF(MOD(A2,1)>=0.55,1,0)
如果要保留2位小数:
=(INT(A2*100)+IF(MOD(A2*100,1)>=0.55,1,0))/100
热心网友
时间:2023-10-16 16:18
[转载]四舍六入五成双公式
四舍六入五成双公式对药学工作者很有用的
具体过程:
A2为需要修约的数据
B2为需要修约的位数
C2为修约结果,公式如下:
IF(((A2*10^(B2+1)-INT(A2*10^(B2+1)))<=0)*(MOD(TRUNC(A2*10^(B2+1)),5)=0)*(1-MOD(INT(A2*10^B2),2))=1,TRUNC(A2,B2),ROUND(A2,B2))
讲解:
1.1 ((A2*10^(B2+1)-TRUNC(A2*10^(B2+1)))<=0)判断需要修约的多一位上是否还有数据,如果有就返回0,没有返回1.
1.2 (MOD(TRUNC(A2*10^(B2+1)),5)=0)判断需要修约下一位是否为5,是5返回1不是5返回0
1.3 (1-MOD(INT(A2*10^B2),2))判断修约位数是否为双数 双数返回1 单数返回0
当1.1 1.2 1.3均为1的时候(即修约下两位没有数下一位且为5修约位数为双数,例如0.245,这时候不能四舍五入了,而是要去掉修约位数下一位的5,变为0.24)
热心网友
时间:2023-10-16 16:19
两种情况:
1.
被修约数 / 小数点后位数 / 结果
0.0834501 / 4 / 0.0835
其中结果一栏(0.0835)的设置为:=ROUND((TRUNC(A2*10^(B2+1))-((A2*10^(B2+1)-TRUNC(A2*10^(B2+1)))<=0)*(MOD(TRUNC(A2*10^(B2+1)),5)=0)*(1-MOD(INT(A2*10^B2),2))*5)/10^(B2+1),B2)
2.
(可用于负数)
被修约数 / 小数点后位数 / 结果
0 / 3 / 0
其中结果一栏的设置公式为:=IF(A2=0,0,(IF(A2>0,ROUND((TRUNC(A2*10^(B2+1))-((A2*10^(B2+1)-TRUNC(A2*10^(B2+1)))<=0)*(MOD(TRUNC(A2*10^(B2+1)),5)=0)*(1-MOD(INT(A2*10^B2),2))*5)/10^(B2+1),B2),-(ROUND((TRUNC(ABS(A2)*10^(B2+1))-((ABS(A2)*10^(B2+1)-TRUNC(ABS(A2)*10^(B2+1)))<=0)*(MOD(TRUNC(ABS(A2)*10^(B2+1)),5)=0)*(1-MOD(INT(ABS(A2)*10^B2),2))*5)/10^(B2+1),B2)))))