我想知道一个数字是否在浮点表示中以一种方式表示,它是否将以相同的方式在具有更大尺寸的表示中表示。也就是说,如果一个数字具有特定的表示 a float
,如果将其转换为 a ,它将具有相同的表示,然后float
转换为 adouble
时仍然相同long double
。
我想知道,因为我正在编写一个 BigInteger 实现,并且传入的任何浮点数都发送到一个接受 along double
来转换它的函数。这引出了我的下一个问题。显然浮点并不总是有精确的表示,所以在我的 BigInteger 类中,当给定浮点数时我应该尝试表示什么。即使与传入的数字不同,尝试表示与给出的数字相同std::cout << std::fixed << someFloat;
的数字是否合理。这是我能得到的最准确的表示吗?如果是这样的话, ...
提取该值的最佳方法是什么(以 10 的幂为底),目前我只是将它作为字符串抓取并将其传递给我的字符串构造函数。这会起作用,但我不禁觉得有更好的方法,但肯定会在除以我的基数时取余数,浮点数不准确。
最后,我想知道是否有一个浮点等价于uintmax_t
, 那是一个类型名,它将始终是系统上最大的浮点类型,或者没有意义,因为long double
它将始终是最大的(即使它与双)。
谢谢,T。