代码之家  ›  专栏  ›  技术社区  ›  Liberace

Foxpro未在算术溢出时引发错误

  •  0
  • Liberace  · 技术社区  · 9 年前

    祝大家愉快 我在将FoxPro表转换为MSSQL时遇到了一个问题。

    发生的情况是,在FoxPro表字段中输入了一个数字,超出了预期值。(在10,2数字字段中输入了一个大整数)然而,尽管如此,FoxPro仍然允许保存数据,并将其显示在报告中。 然而,当试图将所述数据转换为MSSQL时,会导致错误,并且无法获得所述值。

    我知道保存数字时会发生错误,但我的问题是,为什么FoxPro允许在数字“错误”时出现错误,甚至显示错误

    1 回复  |  直到 9 年前
        1
  •  1
  •   Alan B    9 年前

    这是可能的,因为所有语言都有怪癖,而这只是一个Visual FoxPro。您假设它的行为方式与C这样的强类型编译语言相同。这种行为可能可以追溯到dBase时代,并保持兼容性。

    如果试图将值插入超出维度的数字字段,则规则如下:

    • 截断小数位数并舍入字段的剩余小数部分。
    • 如果值不匹配,请使用科学符号存储字段内容。
    • 如果值仍然不匹配,请用星号替换字段内容。