问个关于Vfp的问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 02:46:51
问个关于VFP的问题~

做了这么一个程序:
note "被开方"
set talk off
clear
input "请输入一个数(>2):" to a
if a<2
?"您输入的数值不符合条件!"
else
n=sqrt(a)
do while n>=2
n=sqrt(n)
enddo
?"结果为"+str(n,3)
endif
set talk on

可是为什么我在检测时输入了“10”,而它给我的答案是2?2的时候不是还应该再被开方一次吗?
而当我输入了“2”,它什么反映也没有~
气死我了

你最后的输出STR()函数格式不对,str(n,3)的意思是将N转化为字符格式,字符长度3位,小数点后不保留。本来n=1.7782... 小数点后不保留就被圆整成2了。
应该用 str(n,6,4),这样表示字符长度6位,保留小数点后4位(小数点也算一位)。