• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
nannandbk
博客园    首页    新随笔    联系   管理    订阅  订阅
round 函数

round 函数

要求四舍五入的情况,用round函数就很方便。

一、用法

1.基本用法

对于小数而言,round()函数仅仅保留到整数位,仅对小数点后一位进行四舍五入。

比如:round(1.5) = 2.000000,round(1.57) = 2.000000

2.保留小数用法

如果想要保留小数位数可以先乘后除以达到效果

举个栗子:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    double x = 1.5684;
    //想要保留2位小数
    printf("%.2lf\n",round(x*100)/100);//输出是1.57
	return 0;
}

二、手写版本

double round(double x)
{
	return (int)(x+0.5);
}

三、例题

[abc273_b](B - Broken Rounding (atcoder.jp))

题意:给你一个非负整数\(X\),求对\(X\)进行以下操作\(K\)次的结果

操作:对数字\(X\)按\(10^i\)进行四舍五入操作。

比如:\(273\)按照\(10^2\)四舍五入就是\(300\),\(273\)按\(10^1\)四舍五入就是\(270\)

思路:先变成小数,对其进行保留到整数位的四舍五入,在乘回来。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
	ll x;
	int k;
	cin>>x>>k;
	ll r = 1;

	for(int i = 1;i<=k;i++)
	{
		r*=10;
		x = round(x/(long double)r)*r;
	}
	cout<<x<<endl;
	return 0;
}
posted on 2023-07-09 12:58  nannandbk  阅读(176)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3