主题:取小数点后几位
dgbh
[专家分:0] 发布于 2006-01-09 08:49:00
请问各位大侠,QB中用什么命令实现取小数点后几位,如取小灵数点后三位.谢谢.
回复列表 (共4个回复)
沙发
啊远 [专家分:2610] 发布于 2006-01-09 10:32:00
我也不知道QB有没有现成的函数可以用!
但是你可以自己写四舍五入算法来实现呀!
板凳
咖啡猪 [专家分:290] 发布于 2006-01-10 02:49:00
FUNCTION SIWU# (A#, B%) '四舍五入#(原始数#,保留位数%)
C$ = STR$(A#)
IF INSTR(1, C$, ".") > 0 THEN
IF LEN(C$) - INSTR(1, C$, ".") > B% AND VAL(MID$(C$, INSTR(1, C$, ".") + B% + 1, 1)) > 4 THEN SIWU# = VAL(LEFT$(C$, INSTR(1, C$, ".") + B%)) + 10 ^ -B% ELSE SIWU# = VAL(LEFT$(C$, INSTR(1, C$, ".") + B%))
ELSE
SIWU# = A#
END IF
END FUNCTION
记得加分哦
3 楼
moz [专家分:37620] 发布于 2006-01-10 11:46:00
input a#
do while a#
b&=10^3
c&=a#*b&
a#=c&/b&
print a#
input a#
loop
个人看法是,这些情况一般都是需要拿来当字符串使用的,
比如是字符长度啦,右对齐啦,小数点定位啦。
因为QB没有针对字符串操作的using
通过文件或者屏幕来做其实会是比较方便一点点的:
FUNCTION valstr$(A#, B%)
f$="~tmp.tmp"
f%=freefile
open f$ for output as #f%
print #f%,using "###########."+string$(b%,"#");a#
close #f%
open f$ for input as #f%
input #f%,r$
close #f%
kill f$
valstr$=r$
END FUNCTION
4 楼
冰睛 [专家分:30] 发布于 2006-01-10 15:19:00
int(a*10^n+05)/10^n
a为实数,n为小数位数。
我来回复