标题:各位高手来看看,这些数字如何取整?
只看楼主
DBFuser
Rank: 1
等 级:新手上路
帖 子:27
专家分:3
注 册:2022-12-15
结帖率:50%
已结贴  问题点数:10 回复次数:12 
各位高手来看看,这些数字如何取整?
[b]有一组数字,假设字段名ABC,长度不同,想取整
比如
5238(想取成5200)
5276(想取成5300)

36840(想取成36800)
36860(想取成36900)

116235(想取成116000)
116760(想取成117000)

数字最大不超过6位数

如果不好搞,那就不分长度,把所有数字向上或向下取整到百位数上,请高手给指点一下


[此贴子已经被作者于2023-4-11 22:08编辑过]

搜索更多相关主题的帖子: 长度 位数 数字 取整 向上 
2023-04-11 21:55
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
lnx = 100
a = 36860
? (INT(a/lnx) + IIF(a%lnx<50, 0, 1)) * lnx

坚守VFP最后的阵地
2023-04-11 22:24
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
数字长度在4-5位,用100解决问题
数字长度在6位,用1000解决问题

坚守VFP最后的阵地
2023-04-11 22:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
CLEAR 
a = 116760
DO CASE 
    CASE BETWEEN(LEN(TRANSFORM(a)), 4, 5) && 长度4-5位
        lnx = 100
        lny = 50
    CASE LEN(TRANSFORM(a)) = 6 && 长度6位
        lnx = 1000
        lny = 500
ENDCASE 
IF BETWEEN(a, 1000, 999999)
    ? (INT(a/lnx) + IIF(a%lnx<lny, 0, 1)) * lnx
ENDIF 


[此贴子已经被作者于2023-4-11 22:40编辑过]


坚守VFP最后的阵地
2023-04-11 22:39
sash
Rank: 4
等 级:业余侠客
威 望:6
帖 子:63
专家分:245
注 册:2014-4-25
得分:2 
?IIF(AAA>100000,INT(AAA/1000)*1000,INT(AAA/100)*100)
2023-04-12 12:31
pvm2000
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:24
帖 子:159
专家分:256
注 册:2022-12-22
得分:2 
你这规则不明确,是后三位,还是后四位取整?
2023-04-13 00:19
pvm2000
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:24
帖 子:159
专家分:256
注 册:2022-12-22
得分:0 
整数x取整到百位数的计算方法:
int ( ( x+50)/100 ) * 100
2023-04-13 00:24
倦猫1973
Rank: 2
等 级:论坛游民
威 望:1
帖 子:68
专家分:28
注 册:2022-11-17
得分:2 
低手可以看吗?
2023-04-13 02:53
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
看是四舍五入
2023-04-13 08:53
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
?fun(5238)
?fun(5276)
?fun(36840)
?fun(36860)
?fun(116235)
?fun(116760)

FUNCTION fun(n)
    m = 10^INT(LEN(TRANSFORM(n))/2)
    RETURN ROUND(n/m,0) * m
ENDFUNC
2023-04-13 09:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511879-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.514195 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved