如何在现代 C++ 中将 float 转换为 int

2023-11-22

尽管看起来很奇怪,但我找不到如何干净地转换float to an int.

这种技术

int int_value = (int)(float_value + 0.5);

触发一个

warning: use of old-style cast

in gcc.

那么,什么是现代风格、简单的方法来转换float to an int? (我当然接受精度的损失)


正如乔希在评论中指出的那样,+ 0.5不太可靠。为了额外的安全性,您可以结合static_cast with std::round像这样:

int int_value = static_cast<int>(std::round(float_value));

对于铸造部分,请参见这篇优秀的文章以获得解释。

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

如何在现代 C++ 中将 float 转换为 int 的相关文章

  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 重载<<的返回值

    include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 看似有效的 JSON 上的 JSON.parse 错误[重复]

    这个问题在这里已经有答案了 我在用着JSON parse 解析一个json这是从使用 jquery 调用的 api Laravel 5 返回的 get The json看似有效 然而JSON parse 在 Safari 和 Chrome
  • 将一个上下文中的 spring bean 替换为另一个上下文中的模拟版本

    我正在编写一个集成测试 其中应用程序上下文 xml 在启动期间初始化 测试类中有几个使用特定 bean X 已在 xml 中定义 的测试方法 我的实际要求是仅针对其中一种测试方法来模拟 bean X 在测试方法内部 我尝试使用 ClassP
  • GCP - 验证 PubSub 推送的云函数 https 端点的所有权

    很确定没有办法做到这一点 但很高兴联系看看其他人是否有任何想法 我想做的是 我有 2 个微服务作为云托管在 Google Cloud Platform 上 功能 我的第一个微服务执行任务并触发 PubSub 主题为 x 的消息 我想将我的第
  • 集合的位向量实现

    在阅读 aho 的数据结构书中有关集合基本操作的章节时 我在集合的位向量实现主题中遇到了以下行 if the universal set is sufficiently small so that a bit vector fits in
  • 如何缩小/剪切 Git 存储库

    我们有一个 Git 存储库 其中有 7 名贡献开发人员 拥有超过 2 5 年的历史和大约 10 000 次提交 我们使用 Assembla 进行推拉 当我们添加新的开发人员时 将存储库克隆到他们的开发计算机上需要将近一个小时 我不确定这是否
  • MySQL 触发器 - AFTER INSERT 触发器 + UDF sys_exec() 问题

    问题 我有一个保存某些记录的表 插入完成后 我想通过 MySQL 的 sys UDF 调用外部程序 php 脚本 现在 问题是我已将记录的 ID 传递给脚本的触发器 当我尝试通过脚本提取数据时 我得到 0 行 在我自己的测试中 我得出的结论
  • 为什么我的 Perl 就地脚本即使失败,也会以零退出代码退出?

    我有一个单行 Perl 搜索和替换 大致如下所示 perl p i e s foo bar non existent file txt 因为该文件不存在 这不是故意的 但这是自动构建脚本的一部分 所以我想防止这种情况发生 Perl 退出时出
  • 发布到 Facebook 后如何关闭弹出窗口?

    在我们的博客上 我们有一个链接 用户可以将我们的文章发布到他们的时间线 弹出窗口打开 用户向 Facebook 发帖 然后弹出窗口停留在那里并重定向到 www oursite com 当用户完成发布或单击取消按钮时 我们如何关闭弹出窗口 根
  • 使用 pip 安装软件包会返回错误[重复]

    这个问题在这里已经有答案了 不久前我从下载了 piphttps pip pypa io en stable installing 在我意识到我的 python 版本已经附带了 pip 之前 我成功地使用它来下载 pygame 但现在我尝试下
  • Swift 3:URLSession / URLRequest 不起作用

    我仍在尝试将我们的应用程序从 Swift 2 转换为 Swift 3 因为我们所有的 Apple 设备现在都运行 iOS 10 所以我被迫这样做 我已经完成了代码转换 并认为我做得很好 但是 在尝试调试我的 JSON 问题 发布在另一个问题
  • CodeIgniter:无法加载请求的文件:

    嗨 我是 codeigniter 的新手 我的网站可以在本地运行 但是当我上传时 出现以下错误 遇到错误 无法加载请求的文件 home home view php 这是我的控制器
  • Java 是否像 C++ 一样有未定义的行为?

    未定义的行为和序列点 上面的链接讨论的是C 中的序列点和副作用 简而言之 这意味着在两个序列点之间 如果我们有多个副作用 则副作用的顺序是未指定的 例如 int x 1 int y 2 int z x y 我们可以确定的是z等于3 之后z得
  • Matlab - 计算大稀疏(A'*A)矩阵的最大特征值

    我有一个大 400K 400K 稀疏矩阵 我需要计算的最大特征值A A 问题是由于内存问题 Matlab 甚至无法计算 A 我也尝试过 a b c find A 然后通过创建转置稀疏矩阵进行转置 但是尽管find 有效 但 sprase 创
  • 如何在 Windows 7 的登录屏幕上显示 UI

    我想在登录前屏幕 用户通常输入用户名 密码的屏幕 上显示与用户交互的 UI我读到 Winlogon 软件包的体系结构已更改 并且在 Windows 7 中对我没有帮助 有人建议我使用 WTS 功能 但我仍然不清楚如何使用它们或使用哪些功能
  • 如何使用 python 和 matplotlib 注释行尾?

    使用数据框和基本图 如下所示 import pandas as pd import numpy as np import matplotlib pyplot as plt np random seed 123456 rows 75 df p
  • 错误:View android.widget.ListView 不是滑动抽屉

    我在用NavigationDrawer在我的 Android 应用程序中 我也制作了自己的自定义布局 XML 文件及其适配器 但是当我运行我的程序时 我的应用程序崩溃并显示以下日志 我无法追踪其原因 有什么建议吗 活动主文件
  • 将序列链接到 hsqldb 中的标识

    在PostgreSql中 我们可以定义一个序列并将其用作表的主键 在 HsqlDB 中 我们仍然可以创建一个不链接到任何用户定义序列的自动增量标识列 是否可以使用用户定义的序列作为HsqlDB中自增标识列的生成器 PostgreSql 中的
  • Unity3D-获取组件

    在Unity3D中获取组件的最简单方法是什么C My case GameObject gamemaster C script MainGameLogic cs attached to gamemaster A boolean backfac
  • 编译器在运行前将 Java 字节码转换为与平台无关的 C 代码?

    我正在寻找一个编译器 可以在运行之前将 Java 字节码转换为独立于平台的 C 代码 提前编译 然后 我应该能够使用标准 C 编译器将 C 代码编译为目标平台的可执行文件 据我了解 这种方法仅适用于某些不经常修改的 Java 应用程序 那么
  • 如何在现代 C++ 中将 float 转换为 int

    尽管看起来很奇怪 但我找不到如何干净地转换float to an int 这种技术 int int value int float value 0 5 触发一个 warning use of old style cast in gcc 那么