近似浮点数的好方法

Alb*_*ssi -1 delphi approximation

我有一个程序解决方程式,有时解决方案,x1并且x2是具有大量十进制数的数字.例如,当? = 201(Δ=判别)时,平方根给出一个浮点数.

我需要一个很好的近似值,因为我还有一个将其转换为分数的函数.所以我想这样做:

 Result := FormatFloat('0.#####', StrToFloat(solx1)); 
Run Code Online (Sandbox Code Playgroud)

solx1是双倍的.这样,数字'456,9067896'变为'456,90679'.

我的问题是这样的:如果我以这种方式近似,那么如果我有的话,它的分数456,9067896是正确的(和相同的)456,90679

NGL*_*GLN 5

456,9067896如果我有的话,那部分是正确的(和相同的)456,90679

不,因为0.9067896不相等0.90679.

但是你为什么要围绕数字呢?让他们保持原样.缩短它们仅用于视觉表示.