在 C 中如何将浮点值限制为小数点后仅两位?

2023-11-24

在 C 中如何将浮点值(例如 37.777779)四舍五入到小数点后两位(37.78)?


如果您只想对数字进行四舍五入以用于输出目的,那么"%.2f"格式字符串确实是正确的答案。但是,如果您实际上想要舍入浮点值以进行进一步计算,则可以使用如下所示的方法:

#include <math.h>

float val = 37.777779;

float rounded_down = floorf(val * 100) / 100;   /* Result: 37.77 */
float nearest = roundf(val * 100) / 100;  /* Result: 37.78 */
float rounded_up = ceilf(val * 100) / 100;      /* Result: 37.78 */

请注意,您可能需要选择三种不同的舍入规则:向下舍入(即在两位小数后截断)、舍入到最接近的值和向上舍入。通常,您希望四舍五入到最接近的值。

正如其他几个人指出的那样,由于浮点表示的怪癖,这些舍入值可能不完全是“明显的”十进制值,但它们将非常非常接近。

有关舍入的更多信息,尤其是舍入到最接近的平局打破规则的信息,请参阅维基百科关于舍入的文章.

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

在 C 中如何将浮点值限制为小数点后仅两位? 的相关文章

  • 在 C++ 中,当我将值传递给函数时,它是否总是转换为适当的类型?

    如果我有一个像这样的函数void func size t x 我称该函数为func 5 5 立即转换为size t类型 这通常适用于所有类型吗 我问这个问题是因为我发誓我见过人们编写代码 他们做类似的事情func 5 0 将 5 作为双精度
  • 在 C++ 中,std::string::push_back() 的摊余复杂度是 O(1) 吗?

    我知道标准指定它适用于向量 但是字符串呢 是的 它是摊销常数时间 请参见第 716 页的表 101本文件的 http www open std org jtc1 sc22 wg21 docs papers 2012 n3485 pdf 表
  • C/C++ 程序是在 CPU 上运行还是在内核上运行?

    我已经编程很多年了 但有一件事我一直不明白 有两种类型的编程语言 编译型语言和解释型语言 编译型语言首先需要编译成解释型语言 然后才能执行 例如 C C 需要先编译为机器语言 然后才能执行 我的问题来了 谁真正运行已编译的 C C Wind
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 有没有办法让我的程序用更少的代码运行?

    我为学校作业编写了以下代码 它编译并打印所有正确的消息 但出于我自己的好奇心 我想知道我的代码是否可以缩短并且仍然有效 我尝试了 signal 而不是 sigaction 但我听说 sigaction 比 signal 更受青睐 此外 此任
  • ASP.NET Core 中 AsNoTracking 的模拟或更好的解决方法

    您如何模拟 AsNoTracking 或者是否有更好的解决方法来解决此问题 Example public class MyContext MyContextBase Constructor public MyContext DbContex
  • ASP.NET 数据集 getdataBy 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

    你好 我有一个非常简单的网络表单 我在此表单上有一个按钮和一个网格视图 以及一个包含链接表 bill docket docket bill 等的数据集 在按钮上单击我使用以下代码 protected void button click ob
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 使用 pthread_cond_signal 优雅地终止线程被证明是有问题的

    我需要发射一堆线程 并希望优雅地将它们拉下来 我正在尝试使用pthread cond signal pthread cond wait实现这一目标 但遇到了问题 这是我的代码 首先是thread main static void thrma
  • 使用 Process.Start() 打开文件夹时访问被拒绝异常

    我有一个 C 中的 winforms 应用程序 我必须在其中打开某个文件夹 我用 System Diagnostics Process Start pathToFolder 这会导致以下异常 System ComponentModel Wi
  • memccpy 返回比 src 起始地址更低的内存地址

    我有一个学校项目 我必须重新编码memccpy 功能 我使用 2 个程序来检查我的代码是否正常工作 第一个是只有一个主程序的小程序 第二个程序是另一个学生开发的 可以找到here https github com yyang42 mouli
  • 如何实现可变虚拟成员函数

    所以我有这个功能 virtual void CallRemoteFunction const char pServerGameObjectId const char pFunctionName OVariant arg1 OVariant
  • 在 C++ 中初始化指针

    可以在声明时将指针分配给值吗 像这样的东西 int p 1000 是的 您可以在声明时初始化指向值的指针 但是您不能这样做 int p 1000 是个地址运算符 并且您不能将其应用于常量 尽管如果可以 那会很有趣 尝试使用另一个变量 int
  • 本地主机和 request.Url.Authority

    我的应用程序通过 URL 中的公司标识符分隔用户 company1 app com company2 app com 我正在本地 PC 上进行测试 请求如下 company1 localhost com 但是 我的 request Url
  • 如何在Phone类库项目中添加ResourceDictionary并访问它

    我正在开发一个项目 其中我有一个引用图书馆项目的子项目 在我的库项目 电话类库 中 如何创建 ResourceDictionary xaml 其中我需要添加一些样式并在 xaml 文件和 cs 文件中使用它 我需要访问 xaml 文件中的
  • 为什么我从 c# 到 js 得到不同的 MD5 哈希值?

    我有一个用于加密密码的 C 函数 System Security Cryptography MD5CryptoServiceProvider md5Provider new System Security Cryptography MD5C
  • 函数中的重复参数检查

    我经常有调用层次结构 因为所有方法都需要相同的参数 如果我不想将它们放在实例级别 类的成员 那么我总是问我在每个方法中检查它们的有效性是否有意义 例如 public void MethodA object o if null o throw
  • 您的 C++ 程序中是否仍然存在内存分配失败问题 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在为公司写一些指导方针 我需要回答一些棘手的问题 这一项是相当困难的 解决方案可以是 根本不跟踪 确保使用 new 分配对象 这会在分配失败
  • C# 中的快速字符串解析

    在 C 中解析字符串最快的方法是什么 目前我只是使用字符串索引 string index 并且代码运行合理 但我忍不住认为索引访问器所做的连续范围检查必须添加一些东西 所以 我想知道我应该考虑哪些技术来增强它 这些是我最初的想法 问题 使用
  • 清理 TPL 中的 CallContext

    根据我使用的是基于 async await 的代码还是基于 TPL 的代码 我在逻辑清理方面得到了两种不同的行为CallContext 我可以设置和清除逻辑CallContext如果我使用以下异步 等待代码 正如我所期望的 class Pr

随机推荐

  • 如何在上传目录时删除 Chrome 中的警告消息

    使用上传目录时webkitdirectory在 Chrome 中 会出现一条丑陋的警告消息 该消息内容如下 将 数量 个文件上传到此站点 这将上传 目录名称 中的所有文件 仅当您信任该站点时才执行此操作 这是最近在 Chrome 版本 66
  • MSI 不在 C# 中运行

    我正在尝试运行一个MSI使用 Process Start 方法从 C 文件 MSI 文件很好 因为我可以正常运行它 但是当我尝试在某些 C 代码中运行 MSI 文件时 我收到以下错误 这个安装包无法 被打开 验证该包 存在 并且您可以访问它
  • java.lang.NumberFormatException用于将字符串转换为long [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我正在尝试将字符串转换为长字符串 它会抛出NumberFormatException 我不认为这超出了范围long at all 这是要转换的代码 其中count strng
  • 在 PYSPARK 中运行收集时出错

    我正在尝试将网站名称与 URL 分开 例如 如果 URL 是 www google com 则输出应为 google 我尝试了下面的代码 除了最后一行 websites collect 之外 一切正常 我使用数据框来存储网站名称 然后将其转
  • Java 泛型问题:类型参数 E 不在其范围内

    我有一个关于泛型的问题 我有这个方法 根本无法编译 编译器告诉我 type parameter E is not within its bound 我通常在理解编译器错误方面没有问题 但这一个非常棘手 也许我对泛型的了解需要提高 谁能告诉我
  • Javascript将数据保存到文件系统(有用户提示)

    在最新的浏览器 支持 html5 中实现以下目标的最佳方法是什么 我主要针对的是 Google Chrome 在我的应用程序中 数据是通过 JavaScript 操作的 并且需要使用浏览器提示 另存为对话框 将输出写入文件系统 我不确定写入
  • JNI:从C代码到Java和JNI

    背景 我正在 Eclipse 中开发 Android 应用程序 现在遇到问题 需要您的帮助 所以我必须调用写成的函数C来自JAVA应用程序 但在我编写代码的方式上我有一些问题您可以在下面看到 我正在等待您的答案和想法 C Code typd
  • 如何在 C# 驱动程序中设置 MongoDB Change Stream 'OperationType'?

    当运行新的 MongDB 服务器版本 3 6 并尝试将更改流监视添加到集合以获取新插入和文档更新的通知时 我只收到更新通知 而不收到插入通知 这是我尝试添加手表的默认方式 IMongoDatabase mongoDatabase mongo
  • 通过 Javascript 检测图像的 mime 类型

    我正在使用 javascript document images 函数检测网页上的图像 该函数返回图像数组 由于我没有在正在加载的图像上使用任何扩展名 有什么方法可以从中获取图像的 mime 类型吗 除了在 jQuery 中再次请求图像并尝
  • 在 Visual Studio 2010 中调试时忽略跨 AppDomain 的异常

    我在调试调用另一个 AppDomain 的应用程序时遇到问题 因为如果其他 AppDomain 正在执行的任何操作中发生异常 则异常会冒泡并导致 Visual Studio 2010 无论如何都崩溃 我已经正确包装了抛出的方法调用try c
  • 在 Django TEMPLATE DIRS 中使用外部 URL

    Settings py 中的 Django TEMPLATE DIRS 调用 unix 样式斜杠 因此 当我打电话时 get template some template html 在视图中 结果始终从根开始 并导致调用 home user
  • 如何将您的 Unity 项目输入更新到 SteamVR 2.0?

    我有一些 Unity 场景与以前版本的 SteamVR 插件配合得很好 因为有新版本的插件 SteamVR Unity Plugin 2 0 我的代码不再有效 https steamcommunity com games 250820 an
  • 在 CSS 中使用 OS 9 资源分支字体和 @font-face

    我有一些旧的 OS 9 字体 其中包含资源分支中的字体数据 当我尝试在 font face 中链接此类字体并在浏览器中打开 HTML 时 文本仍然以默认字体显示 在搜索过程中 我发现可以使用 rsrc 属性将字体数据复制到常规 ttf 文件
  • OpenMP 中 private 子句中的变量与并行区域中定义的变量之间有什么区别吗?

    我想知道是否有任何理由选择private var OpenMP 中关于 私有 变量本地定义的子句 即 int var pragma omp parallel private var vs pragma omp parallel int va
  • 更改 Rails 中的当前选项卡

    我的应用程序顶部有一个选项卡列表 我将其包含在 application html erb 的常规布局中 它们看起来像这样 li class current li li li li li 当我点击该页面时 我想将所选选项卡更改为 当前 选项卡
  • 将数据从活动发送到另一个活动而不启动它

    如果我有两个活动 Activity1 和 Activity2 并且我想在不启动 Activity2 的情况下将数据从 Activity1 发送到 Activity2 我知道如果我想启动 Activity2 我在 Activity1 java
  • 如何为基于 YAML 的管道创建管道变量?

    使用设计器 类构建管道 您可以定义具有要传递到任务中的默认值的管道变量 如何对基于 YAML 的管道执行相同的操作 我想创建三个构建管道 每个管道都有一个设置为不同值的变量 所有三个都指向一个 YAML 文件 这文档 states 您可以选
  • 如何计算两个 Rust 数组/切片/向量的点积?

    我试图找到两个向量的点积 fn main let a vec 1 2 3 4 let b a clone let r a iter zip b iter map x y Some x y gt x y sum println r 这失败了
  • 评估 if 语句中可选对象的 Bool 属性

    我正在寻找一种评估 Swift 的方法Bool简洁地概括为一个if声明 当Bool是可选对象的属性 var objectWithBool ClassWithBool if let obj objectWithBool if obj bool
  • 在 C 中如何将浮点值限制为小数点后仅两位?

    在 C 中如何将浮点值 例如 37 777779 四舍五入到小数点后两位 37 78 如果您只想对数字进行四舍五入以用于输出目的 那么 2f 格式字符串确实是正确的答案 但是 如果您实际上想要舍入浮点值以进行进一步计算 则可以使用如下所示的