C++ Ouput Exactly 2 Digits After Decimal Point 小数点后保留三位数字

在C++编程中,有时候要求我们把数据保留小数点后几位,或是保留多少位有效数字等等,那么就要用到setiosflags和setprecision函数,记得要包含头文件#include <iomanip>,请参考下面的示例:

#include <iostream>
#include <iomanip>    // Need this
using namespace std;

int main() {
    float a = 4, b = 3, c = 2;

    cout << a / b << endl;
    cout << b / c << endl;

    cout << setprecision(3) << a / b << endl;
    cout << setprecision(3) << b / c << endl;

    cout << setiosflags(ios::fixed) << setprecision(3) << a / b << endl;
    cout << setiosflags(ios::fixed) << setprecision(3) << b / c << endl;

    return 0;
}

输出为:

1.33333
1.5

1.33
1.5

1.333
1.500

如上面所示,默认情况最多保留6位有效数字,我们如果加上setprecision(3)的话,表明我们需要三位有效数字,如果我们想要小数点后三位有效数字,还需要在前面加上setiosflags(ios::fixed).

时间: 2025-01-01 20:59:08

C++ Ouput Exactly 2 Digits After Decimal Point 小数点后保留三位数字的相关文章

decimal类型数据如何保留两位小数

日常开发中,decimal作为货币类型,经常会处理保留两位小数的问题. 本站整理两种,decimal类型保留两位小数的方法. 第一种: decimal d = 46.28111m;string res=d.ToString(“#0.00”); //结果=46.28 第二种: double d=45.123456;string res=double.Parse(String.Format(“{0:N}”, d)).ToString(); //结果=45.12 转载请注明:三只源码 » decima

SQL Server 小数类型(float 和 decimal)小数相除求占比为1的方法

在SQL Server中,实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值.其他小数类型,都可以使用float和decimal来替代,例如,双精度(double precision)数据类型等价于 float(53),real等价于float(24),numeric是 decimal的同义词,应该避免在程序中直接使用 double precision.real和numeric,而是用 float(24) .float(53)和decimal 代替. flo

使Decimal类型数据保留N位小数且不进行四舍五入操作(C#)

一 问题描述 开发中,需要使Decimal类型数据保留小数点后的两位小数且不需要进行四舍五入操作,即直接截取小数点后面的两位小数即可.例如:1.245M --> 1.24,而不是1.25 使用Decimal.Round()方法可以实现保留Decimal类型数据小数点后的若干位小数,但是该方法会进行四舍五入操作,而不是直接截取.所以,该方法不可取,在网上搜寻一番也没有找到合适的方法,便自己实现了一个截取Decimal类型数据小数点后若干位的方法. 二 详细的实现代码 using System; n

Entity FrameWork 实体属性为decimal时默认只保存2位小数

问题描述:当采用EF的DbContext保存decimal类型数据到数据库,默认只会保存小数点后的前2位小数,其余均置0:例如保存101.182352152322,实际存到数据库里的数据为101.180000000000: 解决方法:在创建项目DbContext时,重写DbContext.OnModelCreating()方法:然后通过如下方法指定精度: 1 protected override void OnModelCreating(DbModelBuilder modelBuilder)

asp.net的decimal保留两位小数

C#的decimal保留两位小数 方法一: decimal d = 46.28111; string dStr = Math.Round( d,2 ).ToString(); 结果:dStr = 46.28 方法二: decimal a = 46.28111;string result=a.ToString("#0.00");//结果=46.28 方法三: decimal d = 46.28111m;string res=d.ToString("#0.00"); /

[LeetCode] Remove K Digits 去掉K位数字

Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible. Note: The length of num is less than 10002 and will be ≥ k. The given num does not contain any leading zero. Ex

解决使用DbContext保存Decimal数据时总是保留小数位2位问题

通过System.Data.Entity.DbContext保留Decimal类型数据时,默认只保留小数位2位.要解决该问题,可以通过在OnModelCreating事件中添加相应代码即可,具体参考如下代码中将shop.Longitude设置为小数位20位: public class UserDbContext : System.Data.Entity.DbContext { public UserDbContext() : base("MyContext") { this.Confi

小数(decimal,double) 截取两位或多位,不四舍五入

C# 截取两位小数 var price = Math.Floor(price * 100) / 100; JavaScript 截取两位小数 var price = Math.floor(price * 100) / 100; 原文地址:https://www.cnblogs.com/ChenRihe/p/10294218.html

多边形重心模板

HDU 1115 Lifting the Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5719    Accepted Submission(s): 2391 Problem Description There are many secret openings in the floor which are covered