首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用库的情况下,我如何在C中将一个浮点数舍入到两位?

在不使用库的情况下,我如何在C中将一个浮点数舍入到两位?
EN

Stack Overflow用户
提问于 2012-10-20 13:11:54
回答 5查看 1.6K关注 0票数 0

我正在学习操作系统编程,我需要假设我的资源很少。

那么,例如,我应该如何计算2/3并将其截断到小数点后两位?有没有什么数学算法或位操作技巧可以让我使用?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-20 14:12:06

你不能将浮点数四舍五入为基数10的两位或基数10位的任意数,浮点数只是近似值。有许多基数10位数不能精确地表示为具有有限小数位数的基数2位数,这与您不能表示具有有限小数位数的基数10中的数字1/3的原因完全相同。您应该将浮动视为近似值,然后仅将其作为显示的一部分。或者,如果你不想要近似值,那么可以使用整数来表示1/ 100,然后将它们除以100,从而得到要显示的值。

票数 5
EN

Stack Overflow用户

发布于 2012-10-20 13:24:42

如果您不打算操作该变量(只需打印它),您也可以使用:

代码语言:javascript
复制
printf("%.2f\n", 2.f / 3);
票数 1
EN

Stack Overflow用户

发布于 2012-10-20 13:13:59

四舍五入到小数点后两位:乘以100,转换为整数,再除以100.0 (尽管请注意,您不能说浮点数在其本机表示形式中通常在小数点后恰好有两位十进制数字;在本机表示形式中不需要是舍入数字)。

出于这个原因-我实际上认为乘以100,并存储为一个整数,并理解这代表一个单位的百分之一,是一种更准确的方式来表示“精确到小数点后两位的数字”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12985463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档