【发布时间】:2025-12-20 09:55:16
【问题描述】:
我正在尝试做的事情在 Python 中看起来像这样
(其中n 是浮点数/双精度数):
def check_int(n):
if not isinstance(n, numbers.Integral):
raise TypeError()
既然 C/C++ 是类型强的,那么哪种类型的转换和比较魔法最适合这个目的?
我最好想知道它是如何在 C 中完成的。
【问题讨论】:
-
你想要 C 还是 C++?它们是非常不同的语言。你需要选择一个
-
这没有多大意义。只有
float、double和long double不能是整数。其他一切都已经是整数了。如果你想检查一个浮点类型是否代表一个非常简单的整数,你只需确保它等于它的下限。 -
那几乎不可能。并非每个“整数”数字在
float/double中都有表示 -
在 C++ 中,这将是一个编译时错误,因为它是一种静态类型语言。
-
当 n 是浮点类型时,python 函数不会返回 false,即使它具有整数值?
标签: c++ c floating-point integer