FOXBASE一个不完善之处

Author: 海 南 蔡 宁 Date: 1993-10-29

        (1)编辑对象为数值类型;
        (2)使用Z功能;
        (3)模式符中有小数点;
        例:STORE 0 TO A,B
        @10,0 GET A PICT“@Z.99”
        @11,0 GET B PICT“@Z9.99”
        READ
        对A的编辑输入了非零数值如12,A应为小数(0.12),但结果是A为整数12,并且显示溢出;
        对B的编辑如果在未输入有效字符之前光标已在隐蔽的小数点之后(这种情况是容易发生的,如在A的编辑区直接将光标向下移),输入非零数值其结果与A犯同一错误,如果输入的数值位数没有超出格式的整数部分的长度,显示将不溢出,这种情形在操作时更不易发现。
        笔者大致认为造成错误的原因是,由于使用了Z功能且变量值原为0,使得编辑文本(字符串)去掉了小数点,编辑完后Foxbase直接将这一文本转为数值,而没有加上小数点后才转换,自然结果就为整数。
        建议定义带小数点的数值编辑格式时最好不要使用Z功能。
        (后来笔者对Foxpro1.0测试,发现也存在同一问题)。(海南蔡宁)