确定浮点数是否与分数无理​​相关

时间:2011-02-23 19:28:08

标签: objective-c floating-point

我有一个随机的浮点数,我必须确定它是一个无理数,如√2还是一个像123/321这样的分数。他们两个在任何地方都被表示为无穷无尽的数字,但有没有办法确定一个数字是一个分数还是它是不合理的?

谢谢!

2 个答案:

答案 0 :(得分:6)

所有floating point个数字都是合理的,因为mantissa的长度是固定的。存储在浮点中的非理性数被截断为有理数。

如果您有一个特定的数字列表需要匹配,您可以按设定的浮点精度将随机数与列表中的数字进行比较,但请记住,由于截断或舍入,您将得到误报

答案 1 :(得分:2)

所有(有限,非NaN)浮点值都是合理的,因为所有有限(二进制)浮点数的形式为f*2^e整数fe