今天在查询的时候,明明两数相减等于0,但就是得不到预期的结果,
比如:
IF Float1 - Float2 > 0
Print('成功!')
最后得知,此为浮点数问题:
现在有两种转换方式:
1.SQL
ALTER FUNCTION [dbo].[浮点数值](@数量 Float)
RETURNS Float
AS
BEGIN
DECLARE @小数 FLOAT
SET @小数 = CAST(CAST(@数量 AS MONEY) AS FLOAT)
RETURN @小数
END
2.Delphi
function 浮点数值(v数值: Double): Double;
begin
Result := StrToFloatDef(FloatToStr(v数值),0.0);
end;