返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c++只保留float型的小数点后两位问题
  • 526
分享到

c++只保留float型的小数点后两位问题

摘要

目录c++ 只保留float型的小数点后两位C++ cout输出小数点后指定位数参考代码c++ 只保留float型的小数点后两位 float spd = 22.518744; cha

c++ 只保留float型的小数点后两位

float spd = 22.518744;
char buf[10];
sprintf(buf, "%.2f", spd);
sscanf(buf, "%f", &spd);

记录一下,有时候我们需要float类型只保留两个有效小数,但是在实际应用中会发现一些现象

如:1.5 在实际中为1.49999998 等等

还有一个常用的方法同时进行四舍五入:

float ff = 36.51647;
ff = ( (float)( (int)( (ff + 0.005) * 100 ) ) ) / 100;

但是有时候效果也不理想

C++ cout输出小数点后指定位数

在C++的编程中,总会遇到浮点数的处理,有的时候,我们只需要保留2位小数作为输出的结果,这时候,问题来了,怎样才能让cout输出指定的小数点后保留位数呢?

在C语言的编程中,我们可以这样实现它:

printf("%.2f", sample);

在C++中,是没有格式符的,我们可以通过使用setprecision()函数来实现这个需求。

想要使用setprecision()函数,必须包含头文件#include 。

使用方式如下:

cout << "a=" << setprecision(2) << a <<endl;

这时候,我们会发现,如果a的值为0.20001,输出的结果为a=0.2,后面第二位的0被省略了。

如果我们想要让它自动补0,需要在cout之前进行补0的定义。

代码如下:

cout.setf(iOS::fixed);
cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出a=0.20

这样,我们就可以得到0.20了。当然,如果想要关闭掉补0,只需要对fixed进行取消设置操作。

cout.unsetf(ios::fixed);
cout << "a=" << setprecision(2) << a <<endl; //输出a=0.2

我们的输出结果就又变回a=0.2了。

参考代码

#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main()
{
    float a = 0.20001;
    cout.setf(ios::fixed);
    cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出结果为a=0.20
    cout.unsetf(ios::fixed);
    cout << "a=" << setprecision(2) << a <<endl; //输出结果为a=0.2
    return 0;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: c++只保留float型的小数点后两位问题

本文链接: https://lsjlt.com/news/170987.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • c++只保留float型的小数点后两位问题
    目录c++ 只保留float型的小数点后两位C++ cout输出小数点后指定位数参考代码c++ 只保留float型的小数点后两位 float spd = 22.518744; cha...
    99+
    2022-11-13
    c++保留小数点后两位 float型小数点后两位 保留float小数点后两位
  • Python如何保留float类型小数点后3位
    目录保留float类型小数点后3位float一、round()二、'%.3f'%x三、decimal小数点后的位数第一种方法第二种方法第三种方法保留float类型小数...
    99+
    2024-04-02
  • C++输出问题:保留两位小数
    目录输出:保留两位小数问题思路代码C++小数保留问题使用方法输出:保留两位小数 问题 已知a=0.20001,输出:0.20 思路 setprecision:功能是控制输出流显示浮点...
    99+
    2022-11-13
    C++输出 C++保留两位小数 C++保留小数
  • mysql怎么保留小数点后两位
    在MySQL中,可以使用 ROUND() 函数来保留小数点后指定位数的小数。 例如,如果要保留小数点后两位,可以使用以下查询: SE...
    99+
    2024-05-13
    mysql
  • java实现double保留小数点后两位小数
    一、返回double型的能四舍五入double d = 114.145; d = (double) Math.round(d * 100) / 100; System.out.println(d);BigDecimal.ROUND_HALF...
    99+
    2016-10-04
    Java double 小数点
  • java中如何使float类型数据保留两位小数
    方法1:用Math.round计算,这里返回的数字格式的float price=89.89; int itemNum=3; float totalPrice=price*itemNum; float num=(float)(Math.rou...
    99+
    2018-02-14
    java基础 java float 两位 小数
  • php保留数字小数点后两位方法
    使用round四舍五入保留小数点后两位 $money=168.228;var_dump(round($money,2));//返回结果 float(168.23) 使用ceil向上取整四舍五入保留小数点后两位 $money3=122.3...
    99+
    2023-10-03
    php 开发语言
  • c++怎么保留两位小数
    在 c++ 中保留两位小数的方法包括:1. 使用格式化字符串,如 fixed 和 setprecision;2. 使用流操作符,如 setw 和 setprecision;3. 使用数学...
    99+
    2024-05-14
    c++
  • c++保留小数点后几位怎么弄
    在c++中,保留小数点后几位通常涉及到格式化输出。可以通过使用 i/o 流库中的 std::setprecision 和 std::fixed 来实现。可以使用 std::cout 和 ...
    99+
    2024-04-02
  • java保留小数点后面两位(四舍五入)
    java保留小数点后面两位(四舍五入)学习记录 三个方法: 使用String.format("%.2f",num);     //num是要处理的数据 这种方法可以用float,double接收数据类型,我试了一下String接收好像会报错...
    99+
    2023-09-14
    java 开发语言
  • c++中怎样保留两位小数
    在 c++ 中保留两位小数的方法是:使用流操作符 fixed 指定固定点表示法。使用 setprecision(2) 指定小数点后保留 2 位。 在 C++ 中保留两位小数 在 C++...
    99+
    2024-04-26
    c++
  • C++详解使用floor&ceil&round实现保留小数点后两位
    目录C++四舍五入保留小数点后两位1、floor函数2、ceil函数3、round函数C++四舍五入保留小数点后两位 示例 #include <iostream> usi...
    99+
    2024-04-02
  • c++如何保留两位小数输出
    在 c++ 中,使用 `std::fixed` 和 `std::setprecision` 函数(定义于 `` 头文件中)可以在输出时保留两位小数。`std::fixed` 设定输出格式...
    99+
    2024-04-02
  • c++怎么保留两位小数输出
    如何保留两位小数输出?在 c++ 中使用 fixed 和 setprecision() 函数:1. #include & ; 2. fixed 确保固定小数点;3. setpr...
    99+
    2024-05-14
    c++
  • c语言怎么保留两位小数
    在 c 语言中,可以通过以下方法保留两位小数:使用 printf() 函数中的 "%.2f" 格式说明符。使用 round() 函数将数字乘以 100 并除以 100。使用 fixed-...
    99+
    2024-05-13
    c语言
  • 使用BigDecimal除法后保留两位小数
    目录BigDecimal除法后保留两位小数详细描述BigDecimal除法异常Non-terminating decimal expansion异常分析解决措施思考总结BigDeci...
    99+
    2024-04-02
  • C++中double类型怎么保留三位小数点
    这篇文章主要介绍“C++中double类型怎么保留三位小数点”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中double类型怎么保留三位小数点”文章能帮助大家解决问题。我以一个例子作为讲解:已...
    99+
    2023-06-27
  • Java Float 保留小数位精度的实现
    目录Float 保留小数位精度Float 浮点型数据保留两位小数1、DecimalFormat2、Math.round()Float 保留小数位精度 DecimalFormat ...
    99+
    2024-04-02
  • c语言中怎么保留两位小数
    在 c 语言中,要保留两位小数,可以:声明一个浮点型变量。使用 printf() 函数打印浮点型变量。在格式化字符串中使用 %.2f 格式说明符。 C 语言中如何保留两位小数 在 C ...
    99+
    2024-04-27
    c语言
  • 如何在c语言中保留两位小数
    今天就跟大家聊聊有关如何在c语言中保留两位小数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先点击打开电脑桌面上的VC++6.0软件。进入程序页面之后,点击左上角的新建文件。然后在...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作