永发信息网

VFP数据类型转换的一个问题

答案:4  悬赏:70  手机版
解决时间 2021-02-12 16:25
  • 提问者网友:精神病院里
  • 2021-02-11 23:22
有几个文本框,其中有单价(text1)、数量(text2),现在想要计算金额(text3)而不是输入金额,要怎么计算?
thisform.text3.value=thisform.text1.value*thisform.text2.value
这样是不行的吧,应该怎么解决?
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-02-12 00:42
建立的文本框在没有明确类型和输入格式时,默认为“字符型”。当有的文本框输入数据,有的未输入数据进行运算时,就要先把其文本框类型变为一致,否则就出错。
要把文本框类型变为一致:
一是如“ sheming2009”所讲的,在需要参与计算的文本框上点右键——选“生成器”,类型选为“数值型”。这样就一致了,且比较简单,可直接用:thisform.text3.value=thisform.text1.value*thisform.text2.value

二是加入条件判断:
IF TYPE('thisform.text1.Value')="N" &&判断text1是否为数值型
aa=thisform.text1.Value
else
aa= VAL(thisform.text1.Value)
ENDIF
IF TYPE('thisform.text2.Value')="N" &&判断text2是否为数值型

bb=thisform.text2.Value
else
bb= VAL(thisform.text2.Value)
ENDIF
thisform.text3.value=aa*bb
当然是用第一种方法比较省事。但第二种方法是对原文本框属性不作任何修改的前提下,以能将不一致的数据变为一致。
全部回答
  • 1楼网友:野味小生
  • 2021-02-12 03:54
可以这样写 thisform.text3.value=val(thisform.text1.value)*val(thisform.text2.value) val 的作用是将字符型数据转换为数值型。
  • 2楼网友:罪歌
  • 2021-02-12 02:20
u类型,代表无法识别的类型,是不能转换的. stor iif(isnull(字段a),null,allt(字段a)) to czda 这句代码有问题吧? 应该这样吧: stor iif(isnull(字段a),'null',allt(字段a)) to czda 另外你这种情况不建议设置字段允许null, 没有值可以用空格啊. 这样就无需检测是否.null.了
  • 3楼网友:猎心人
  • 2021-02-12 02:06
表达式是正确的,只是三个文本框都需要设置其类型为数值型(在文本框上点右键-生成器,类型选为数值型)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯