Delphi 如果我没有';我不知道我有浮点数还是整数?

Delphi 如果我没有';我不知道我有浮点数还是整数?,delphi,Delphi,我在delphi表单上有stringgrid,我试图将一个单元格的值与另一列中另一个单元格的值分开 但问题是,stringgrid单元格中填充了不同类型的数字,因此我得到了一些错误。 例如,单元格中的数字可以是 0.37或34或0.0013或0.00或0.35或30.65或45.9108或0.0307或6854.93 换句话说,我永远不知道在这些单元格中它是真的、浮点的、整数的还是其他类型的 我在网上到处都找过,但运气不好。任何人都有任何想法。顺便说一下,我并不是德尔福专家。谢谢。将所有数字视为

我在delphi表单上有stringgrid,我试图将一个单元格的值与另一列中另一个单元格的值分开

但问题是,stringgrid单元格中填充了不同类型的数字,因此我得到了一些错误。 例如,单元格中的数字可以是 0.37或34或0.0013或0.00或0.35或30.65或45.9108或0.0307或6854.93

换句话说,我永远不知道在这些单元格中它是真的、浮点的、整数的还是其他类型的


我在网上到处都找过,但运气不好。任何人都有任何想法。顺便说一下,我并不是德尔福专家。谢谢。

将所有数字视为浮点数。使用
strotostr
,将数字除以,然后使用
FloatToStr
将结果转换回字符串。如果结果是整数,则不会产生小数点。

对于每个字符串,首先使用
SysUtils.pas
中的
StrToFloat
函数将其转换为浮点值。这应该允许处理任何数字类型(除非您有一些不寻常的东西,比如复数)。由于上面的列表中有一些零值,您还应该确保检查是否存在被零除的情况,因为这也可能引发异常。

SysUtils有许多函数,例如用于此目的的
TryStrToFloat、TryStrToInt、TryStrToInt64
等。这些函数接受用于返回转换值的引用参数(var参数),如果转换成功,函数本身将返回true


如果您确定该字符串有一个有效的数字,那么在决定使用哪个函数之前,您可以检查输入字符串,看看它是否有小数点。

或者直接抛出异常。