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