C++保留小數精度
在C++的程式設計中,總會遇到浮點數的處理,有的時候,我們只需要保留2位小數作為輸出的結果,這時候,問題來了,怎樣才能讓cout輸出指定的小數點後保留位數呢?
在C語言的程式設計中,我們可以這樣實現它:
printf("%.2f", sample);
在C++中,是沒有格式符的,我們可以通過使用setprecision()函式來實現這個需求。
想要使用setprecision()函式,必須包含標頭檔案#include <iomanip>。使用方式如下:
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; }
相關推薦
C++保留小數精度
在C++的程式設計中,總會遇到浮點數的處理,有的時候,我們只需要保留2位小數作為輸出的結果,這時候,問題來了,怎樣才能讓cout輸出指定的小數點後保留位數呢?在C語言的程式設計中,我們可以這樣實現它:printf("%.2f", sample);在C++中,是沒有格式符的,我
C / C++中保留小數精度
#include <iostream> #include <math.h> using namespace std; int main() { double a =
C# 保留小數位數的方法
小數 mat text double 必須 前言 ont ext digits ? 前言 本文主要介紹 C# 中實現小數位數的保留,完成對小數位數四舍五入的幾種方法。 1. 使用 Math.Round() 方法 說明: 1) 其實使用 Math.Round()
C++保留小數位數問題
首先 介紹主角: setprecision() 和 setiosflags() 這兩個函式是標頭檔案#include<iomanip>裡的函式,記得加標頭檔案#include<iomanip> setprecision() 顧
C#保留小數
四捨五入保留 float a=0.188f; double b=System.Math.Round(a,2);//output: 0.19 直接擷取: float f=0.188f; int i=(int)(f*100); f=(float)(i)/100; 此方法在Unity下發現無法以下形式出現錯
C++ double 小數精度控制
第一種方法:cout<<fixed<<setprecision(20)<<mydouble<<endl; #include <iostream> #include <iomanip> using nam
如何保留小數精度
1.java中有自帶的方法Math類中round,可以自己檢視API。 API中是這麼介紹的:round(double a) 返回引數中最接近的 long ,其中 long四捨五入為正無窮大。 Eg: double a=10;
C# 保留兩位小數
pre float bsp color system output nbsp col double 四舍五入保留 float a=0.188f; double b=System.Math.Round(a,2);//output: 0.19 直接截取: float f=
C++ 保留有效小數 保留有效數字
std inf 輸出格式 cout iomanip include image pac end 1.需要頭文件 #include <iomanip> 2. 要保留兩位有效小數 cout<<setiosflags(ios::fixed)<
c/c++ 整數除預算保留小數
兩個整數相除會自動省略小數點後的小數位即使下面這種: int a,int b; int a = 4; int b = 3; double d = a/b; d= 1.0000000; --------------------------- 整數除法用 “/”的話得到的是一個整數(得到
c# 保留幾位小數
1.佔位符方式 (改方法只能在輸出時顯示保留兩位小數的效果) double number = 3.3333333333; Console.WriteLine("{0:0.00}",number); 2.轉字串方式 double number = 3.33333333
【高精度演算法】A/B 高精度除以低精度 保留小數
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> cha
c語言除法如何保留小數,如何printf小數 [程式設計題] 字串碎片
#include<stdio.h> #include<string.h> char str[51]; int n,count,i; int main() { scanf("%s",&str); n=strlen(str);
C++解決資料精度問題,對浮點數儲存指定位小數
------ 更新日期 2018年5月13日 21:41:46 1、背景 對浮點數儲存指定位小數。比如, 1.123456. 要儲存1位小數,,呼叫方法後, 儲存的結果為: 1.1。 再比如,1.98765, 儲存2位小數的結果
(轉)C++中保留小數位數的方法
iomanip的作用: 主要是對cin,cout之類的一些操縱運運算元,比如setfill,setw,setbase,setprecision等等。它是I/O流控制標頭檔案,就像C裡面的格式化輸出一樣.以下是一些常見的控制函式的: dec 置基數為10 相當於"%d" hex 置基數為16 相當於"%X"
C語言——高精度小數
演算法題目已給出了。。 題目內容: 由於計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。 (0,1)之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果以多個整數來表示,每個整數表示結果的一位
C# 保留2位小數
str 保留 tr1 報錯 parse orm val 四舍五入 decimal 1.只要求保留N位不四舍5入 float f = 0.55555f; int i =(int)(f * 100); f = (float)(i*1.0)/1
用c++實現高精度加法
strlen 數位 cout col 代碼 code pre 操作數 eof c++實習高精度加法 最近遇到一個c++實現高精度加法的問題,高精度問題往往十復雜但發現其中的規律後發現並沒有那麽復雜,這裏我實現了一個整數的高精度加法,主要需要註意以下幾點: 1:將所需
python 浮點數保留小數
方式 decimal round logs gen 輸出 浮點數 .cn 保留 http://www.cnblogs.com/Raymon-Geng/p/5784290.html 這裏有三種方法, round(a,2) ‘%.2f‘ % a Decimal(‘5.000‘)
入門cout輸出的格式(補位和小數精度)
http sdn art bsp family mar tail log details http://blog.csdn.net/gentle_guan/article/details/52071415 mark一下,媽媽再也不用擔心我高精度不會補位了入門cout輸出