VFP编程问题
clearinput'请输入重量(克):'towdocasecasew<=100c=w*0.05casew>100c=5+(w-100)*0.02endcase?'邮费为...
clear
input '请输入重量(克):' to w
do case
case w<=100
c=w*0.05
case w>100
c=5+(w-100)*0.02
endcase
?'邮费为:'+STR(c,2)+'元'
return
运行程序后,只要输入1-9的数字,最后运算结果都是0,例如输入9,正确结果应该是0.45,可是出现的却是0.只有输入大于10的数后,才会出现准确的数,是哪里出了问题?要怎样改动才行? 展开
input '请输入重量(克):' to w
do case
case w<=100
c=w*0.05
case w>100
c=5+(w-100)*0.02
endcase
?'邮费为:'+STR(c,2)+'元'
return
运行程序后,只要输入1-9的数字,最后运算结果都是0,例如输入9,正确结果应该是0.45,可是出现的却是0.只有输入大于10的数后,才会出现准确的数,是哪里出了问题?要怎样改动才行? 展开
3个回答
展开全部
这是因为你没搞清楚STR函数的作用,STR函数可以是一个参数两个参数或三个参数,如果是一个参数就是将数c转换成10位的字符串,但只转换整数位,如STR(c);如果是两个参数,则第二个参数是转换后的字符串位数,但也只转换整数位,如STR(c,2),只将c的值整数部分转换成2位的字符;如果是三个参数,则第三个参数是小数位位数,如STR(c,6,2),是将c的值转换成5位字符串,其中小数部分2位。
所以你只要将这句 ?'邮费为:'+STR(c,2)+'元'
改为 ?'邮费为:'+STR(c,6,2)+'元'
其中的6是将c的值转换成的字符串位数,你这题因为要求有两位小数,所以第三个参数一定要是2,那么第二个参数一定要大于3,如果数c过大,你就可以将第二个参数适当大点。
所以你只要将这句 ?'邮费为:'+STR(c,2)+'元'
改为 ?'邮费为:'+STR(c,6,2)+'元'
其中的6是将c的值转换成的字符串位数,你这题因为要求有两位小数,所以第三个参数一定要是2,那么第二个参数一定要大于3,如果数c过大,你就可以将第二个参数适当大点。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询