[C++]C++四舍五入保留到n位小数
#include <sstream>
#include <iostream>
#include <iomanip>
using namespace std;
/**
* 四舍五入保留到n位小数
* @param number
* @param bits
* @return
*/
static double round_1(double number, unsigned int bits) {
stringstream ss;
ss << fixed << setprecision(bits) << number;
ss >> number;
return number;
}
typedef long long LL;
/**
* 四舍五入保留到n位小数
* @param number
* @param bits
* @return
*/
static double round_2(double number, unsigned int bits) {
LL integerPart = number;
number -= integerPart;
for (unsigned int i = 0; i < bits; ++i)
number *= 10;
number = (LL) (number + 0.5);
for (unsigned int i = 0; i < bits; ++i)
number /= 10;
return integerPart + number;
}
int main() {
double pi = 3.1415926;
double r_pi1 = round_1(pi, 3);
double r_pi2 = round_2(pi, 4);
cout << "pi=" << pi << endl;
cout << "r_pi1=" << r_pi1 << endl;
cout << "r_pi2=" << r_pi2 << endl;
}
运行结果

[C++]C++四舍五入保留到n位小数的更多相关文章
- 19-6/24作业: 将一个double类型的小数,按照四舍五入保留两位小数
☞要求 将一个double类型的小数,按照四舍五入保留两位小数 ☞实现方式 1.获得一个double类型的小数 2.使用BigDecimal包的setScale进行操作 3.输出结果 ☞代码内容 pa ...
- sqlserver 数据保留固定位小数,四舍五入后保存
在实际业务中遇到金额保留四舍五入后,保留两位小数的需求.但是原来的数据是保留的6位小数,所以需要转化一下.具体实现过程如下: EG:SELECT CAST ( ROUND(1965.12540,2) ...
- JS 实现四舍五入保留两位小数并且添加千位分隔符
var a = "-123456789.078";a = (Math.round(a * 100) / 100).toFixed(2).toString().replace(/(\ ...
- 将double类型的值保留几位小数
1.第一个参数(3.1415926)是要处理的数值.第二个参数(1)为要保留的几位小数.第三个参数是按照“四舍五入”还是"直接取这一位的值"(MidpointRounding.To ...
- java保留两位小数和js保留两位小数一致性研究
一.java保留两位小数方式 public static void main(String[] args) { System.out.println("=======DecimalForma ...
- 小程序使用wxs解决wxml保留2位小数问题
1.出现溢出表现 从图中可以看到数字超出了很长长度.代码里面是如下这样的.为什么在0.35出现?或者一些相成的计算出现? 而 0.34却不会.(wap.0834jl.com) 0.41 也会出现,好像 ...
- 小程序使用wxs 解决wxml保留2位小数问题
1.出现溢出表现 从图中可以看到数字超出了很长长度.代码里面是如下这样的.为什么在0.35出现?或者一些相成的计算出现? 而 0.34却不会. 0.41 也会出现,好像是二进制运算出现结果. data ...
- sql 保留两位小数+四舍五入
1. ROUND(该函数,只是负责四舍五入到两位小数,但是不负责截断 只留两位小数,例如下例:) 关于ROUND函数,我们平常理解为4舍5入,如: print ROUND(13.145, 2); 结果 ...
- Double 数据保留两位小数二:直接截取小数后面两位,不进行四舍五入
package com; public class T2 { public static void main(String[] args) { System.out.println(calculate ...
随机推荐
- 从源码看Thread&ThreadLocal&ThreadLocalMap的关系与原理
1.三者的之间的关系 ThreadLocalMap是Thread类的成员变量threadLocals,一个线程拥有一个ThreadLocalMap,一个ThreadLocalMap可以有多个Threa ...
- Linux—禁止用户SSH登录方法总结
Linux-禁止用户SSH登录方法总结 一.禁止用户登录 1.修改用户配置文件/etc/shadow 将第二栏设置为"*",如下.那么该用户就无法登录.但是使用这种方式 ...
- Oracle中常用的系统表
1.dba开头的表 dba_users 数据库用户信息 dba_segments 表段信息 dba_extents 数据区信息 dba_objects 数据库对象信息 dba_tablespaces ...
- nodejs代码初探之nodejs启动
nodejs启动 入口在node_main.cc,解析参数后进入node.cc 中的node::Start() V8::Initialize() //初始化v8SetupProcessObject() ...
- Mybatis-Plus默认主键策略导致自动生成19位长度主键id的坑
原创/朱季谦 某天检查一位离职同事写的代码,发现其对应表虽然设置了AUTO_INCREMENT自增,但页面新增功能生成的数据主键id很诡异,长度达到了19位,且不是从1开始递增的-- 我检查了一下,发 ...
- 第三届“传智杯”全国大学生IT技能大赛(初赛A组)题解
留念 C - 志愿者 排序..按照题目规则说的排就可以.wa了两发我太菜了qwq #include<bits/stdc++.h> using namespace std; const in ...
- 如何用CodeBlocks调试?
一.简介 这篇文章我主要会介绍CodeBlocks的调试功能,并简单讲述如何使用它. 二.前言 大家好,最近和小伙伴们讨论修改程序的时候,我突然想到,授人以鱼不如授人以渔(指调试),于是这篇文章应运而 ...
- net start Mysql 启动服务时 ,显示"Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误
一.问题 有时候,输入net start Mysql 启动服务时 mysql>net start Mysql 显示 Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误 二.原因 ...
- BJD4th pwn pi
没记错的话,比赛那天正好是圣诞节,就只看了这一道pwn题,我还没做出来.我太菜了. 有一说一,ida换成7.5版本之后,一些去掉符号表的函数也能被识别出来了,ida更好用了呢. 题目程序分为两块,先看 ...
- vue-cli3 vue2 保留 webpack 支持 vite 成功实践
大家好! 文本是为了提升开发效率及体验实践诞生的. 项目背景: 脚手架:vue-cli3,具体为 "@vue/cli-service": "^3.4.1" 库: ...