为什么 Floor 不返回整数? [复制]

2024-03-20

刚才我偶然发现了一个事实,即 C++ 函数floor返回与您传递给它的类型相同的类型,无论是float, double或诸如此类。

根据这个参考 http://www.cplusplus.com/reference/cmath/floor/,该函数返回一个向下舍入的整数值。为什么这不是一个整数?


因为整型不一定能保存与整型相同的整型值float or double.

int main(int argc, char *argv[]) {
    std::cout << floor(std::numeric_limits<float>::max()) << std::endl;
    std::cout << static_cast<long>(floor(std::numeric_limits<float>::max())) << ::endl;
}

输出(在我的 x86_64 架构上)

3.40282e+38
-9223372036854775808

此外,浮点值可以保存 NaN、+Inf 和 -Inf,所有这些都由floor()手术。这些值都不能用整数类型表示。

int main(int argc, char *argv[]) {
    std::cout << floor(std::numeric_limits<float>::quiet_NaN()) << std::endl;
    std::cout << floor(std::numeric_limits<float>::infinity()) << std::endl;
    std::cout << floor(-std::numeric_limits<float>::infinity()) << std::endl;
}

outputs

nan
inf
-inf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Floor 不返回整数? [复制] 的相关文章

  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 如何查找boost运行时版本

    我正在编写一个使用 boost 的 C 库 在这个库中 我想包含有关用于编译我的库的二进制版本的 boost 版本的信息 我可以使用宏BOOST VERSION这很好 我还想确定哪个是 boost 的运行时版本 以便我可以与用于编译我的库的
  • 线程安全的get(访问器方法)

    我目前正在使用以下代码对变量进行线程安全访问 int gnVariable void getVariableValue int pnValue acquireLock Acquires the protection mechanism pn
  • VBA 中的 VSTO:AddIn.Object 有时不返回任何内容 (null)

    Given VSTO 插件 An override object RequestComAddInAutomationService 它返回一个名为的类的实例Facade在我的场景中 Excel 2007 中的 VBA 宏可访问AddIn O
  • WPF MVVM将DataTable绑定到DataGrid不显示数据

    我有一个简单的控件 其中包含一个 DataGrid 其中 ItemsSource 绑定到 DataTable 当我填充 DataTable 时 我可以看到 DataGrid 中添加了行 但没有显示任何数据 我没有为此 DataGrid 使用
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • 如何以编程方式确定 C 中 int 数据的最大和最小限制?

    我正在尝试 K R 的练习 2 1 练习内容如下 编写一个程序来确定范围char short int and long变量 两者signed and unsigned 通过从标准标题打印适当的值并通过直接计算 如果计算它们会更困难 确定各种
  • 将 try_emplace 与 shared_ptr 一起使用

    所以我有一个std unordered map
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • 使用 C 创建立体声正弦波

    我正在尝试用 C 创建立体声正弦 WAV 并且可能有不同的 可能是空白的 左声道和右声道 使用此函数为每个通道生成一个音调 int16 t create tone float frequency float amplitude float
  • c#Registry to XML无效字符问题

    我在尝试从注册表创建 XML 文件时遇到问题 在我的笔记本电脑 W7 64b 上它工作正常 生成了 xml 文件 但在另一台计算机 Xp 32b 上抛出异常 System ArgumentException 十六进制值 0x00 是无效字符
  • popen2()在c中如何工作?

    我尝试使用管道 叉子和 dup 在我的程序中执行 md5sume 命令 我发现总和代码运行成功 但我无法理解某些代码行 这是我的代码 int infp outfp char buf 128 if popen2 md5sum infp out
  • C++ 克隆惯用语中协变返回类型的用处?

    通常的克隆习惯使用协变返回类型 struct Base virtual Base clone struct Derived public Base Derived clone 我读过一些内容 大意是协变返回类型是 C 后来添加的 较旧的编译
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 允许 .NET WebApi 忽略 DOCTYPE 声明

    我正在尝试通过 WebApi 方法将 XML 反序列化为对象 我有以下课程 XmlRoot IsNullable false public class MyObject XmlElement Name public string Name
  • 在 C# 中加密并在 Flex 中解密

    我需要解密 Flex 中的一些数据 这些数据是用 C 加密并写入文件的 为了简单起见 我选择使用 as3crypto As3 库和 Bruce Schneier C 库 AS3 as3加密链接 http code google com p
  • 如何带参数调用外部程序?

    我想在我的代码中调用一个 Windows 程序 并使用代码本身确定的参数 我不想调用外部函数或方法 而是调用 WinXP 环境中的实际 exe 或批处理 脚本文件 C 或 C 将是首选语言 但如果使用任何其他语言更容易完成此操作 请告诉我
  • 修改公共属性的访问修饰符是否是重大更改?

    如果我将公共属性的 setter 的访问修饰符从私有更改为公共 是否会导致引用它的其他程序集发生任何重大更改 UPDATE 这个问题是我 2012 年 1 月博客的主题 https ericlippert com 2012 01 09 ev
  • 在 C# 中将 ulong 映射到 long ?

    我正在尝试将 ulong 映射到 long 反之亦然 将 uint 映射到 int 反之亦然 如下所示 为了将值保存在具有签名类型的 MS SQL 数据库中仅限整数和大整数 我这样做是因为我必须检查 在数据库中 一个数字 uint ulon
  • 组合框由于某种原因被链接

    我有以下代码来填充 3 个组合框 private void PopulateDDLs SqlConnection connection SqlCommand command SqlDataReader reader DataTable dt

随机推荐

  • 简单的域名正则表达式

    如何确保域名符合这 3 个简单标准 以 com net 结尾 不得以 http 或 https http www 或 https www 我已经设法理解了正则表达式的这一部分 它与第一个标准相对应 com net 但我不知道如何实现另外两个
  • 如何“执行”make文件

    我尝试在 code blocks 中使用 make 文件 但我做错了 我安装了包含编译器的版本 http sourceforge net projects codeblocks files Binaries 10 05 Windows co
  • Stripe 支付:来源与令牌/卡?

    我正在努力使用 stripe 设置定期付款 我正在使用react stripe elements来收集卡片信息 看起来有两种方法可以保存卡片供以后使用 this props stripe createToken this props str
  • 这个 gcc/clang 过去一指针比较行为符合还是非标准?

    尽管 C 标准明确认识到这样一种可能性 即指向 刚刚过去 一个对象的地址可能会偶然与指向 指向 另一个不相关对象的地址进行比较 但 gcc 和 clang 似乎都在假设没有指针的情况下进行操作观察到的指向刚刚经过一个对象的对象可能指向另一个
  • 在匿名块内显示选择结果

    我正在尝试调试过程中的 SELECT 并且我正在尝试使用匿名块 我希望 SQL Developer 只返回最后一个 SELECT 语句 但我收到错误 ORA 06550 line 21 column 5 PLS 00428 an INTO
  • 如何在 Dart 中创建私有变量?

    我想创建一个私有变量 但我不能 这是我的代码 void main var b new B b testB class A int private 0 testA print int value private private 5 class
  • Spritekit 动画没有改变

    我的游戏中有一个虚拟控制板 如果我点击并按住方向按钮之一 播放器就会朝正确的方向移动并显示正确的图像和动画 但是 如果我将手指从一个控件滑动到另一个控件 例如从右到下 播放器会向下移动 但图像和动画不会改变 直到我抬起手指 下面是我处理触摸
  • Logback:用 ******** 和最后两位数字替换 10 位数字

    我在我的模式 logback xml 中使用以下内容来替换日志中的 10 位数字 replace msg d 10 这种方法的一个问题是 它还匹配 11 位数字的前 10 位数字 有没有办法精确匹配10位数字 现在更大的问题是我需要显示这个
  • 无法在二进制文件中找到 .dtors 和 .ctors

    我正在读 黑客 剥削的艺术 一书 书中有一节解释了使用 dtors and ctors 我正在尝试重现本书的练习之一 但在我的可执行文件中没有这一部分 起初我以为问题是我正在编译 64 位 但现在我正在编译 32 位并且 dtors and
  • 如何在 Storybook 6.0 中自定义深色和浅色主题

    我正在使用浅色和深色主题制作 PWA 我想创建我的 Storybook 浅色和深色主题来反映这些主题 因此 我创建了一个函数 如果我向它传递 Material UI 主题和基本名称 它将返回一个新的 Storybook 主题对象 但是我如何
  • 仅当配置中的enableSessionState设置为true时才能使用会话状态

    我正在使用 vs 2010 使用 c 开发 Asp net MVC 2 应用程序 当我在调试模式下本地运行我的应用程序时 出现下面提到的错误 错误信息图片如下 错误消息文本如下 仅当enableSessionState设置为true时才能使
  • Linq to SQL 存储库是否应该实现 IDisposable

    在过去的几天里 我一直在使用 Linq 谷歌搜索大量有关存储库模式的信息 那里有很多信息 但它们往往是矛盾的 我仍在寻找明确的来源 我仍然不确定的一件事是存储库是否应该实例化它自己的 DataContext 并具有 SubmitChange
  • 如何实现气泡只有在完全缩放的情况下才可点击 d3js

    我这里有一个小问题 我正在使用这个例子 http bl ocks org mbostock 7607535 http bl ocks org mbostock 7607535 并且我修改了 flare json 文件如下 name flar
  • 自定义勺边框样式 - 响应式、自定义和动态边框样式 - 适合高度、自定义边框角 - 双描边 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法在 CSS 或 jQuery 中制作自定义勺子边框样式 就像下图一样 这里有一个小提琴 http jsfiddle net
  • 如何手动设置全息视图颜色条的限制?

    当我尝试输入自己的股票代码时 在较早的牢房中 ticker FixedTicker ticks range 0 10 在下面的单元格中 opts HeatMap colorbar True colorbar opts ticker tick
  • 错误:与nodejs程序连接时连接ECONNREFUSED 127.0.0.1:5432 [重复]

    这个问题在这里已经有答案了 我在 CentOS 8 机器上设置了一个 postgresql 服务器 并在同一台机器上运行了一个 js 程序 使用pg图书馆 const Pool require pg const pool new Pool
  • 如何更改 Android 的点击叠加标记?

    我制作了一个应用程序 当用户单击它时 我需要更改覆盖项目的可绘制对象 我正在使用以下代码来实现此效果 protected boolean onTap int index OverlayItem item mOverlays get inde
  • OBJLoader 的异步问题 - 等待 XHR 完成加载

    如何使 OBJLoader 简单地返回对象而不是将其添加到场景中 我遇到了同步问题 我的代码没有等待 XHR 请求完成 从而引发错误 以下示例显示了该问题 var loader new THREE OBJLoader return a me
  • 为“x < y <- z”定义“<<-”时存在歧义

    g grothendieck 的回答这个问题 https stackoverflow com questions 53744379 assigning a value to a list item using assign 53745177
  • 为什么 Floor 不返回整数? [复制]

    这个问题在这里已经有答案了 刚才我偶然发现了一个事实 即 C 函数floor返回与您传递给它的类型相同的类型 无论是float double或诸如此类 根据这个参考 http www cplusplus com reference cmat