設定浮點數的顯示精度 precision 0

2022-04-07 00:09:40 字數 860 閱讀 8764

/*

設定浮點數的顯示精度

cout.precision(int)可以設定浮點數的顯示精度(不包括小數點)

注:1.如果設定的精度大於浮點數的位數,如果浮點數能根據ieee754精確表示,則補零;如果浮點數不能精確表示,則盡量接近

2.如果設定的精度小於浮點數的位數,採用科學計數法表示

3.precision(int)單獨使用,表示設定有效位數;與fixed或者scientific連用,表示設定小數字的精度

4.precision(int)會一直生效

5.float浮點數預設有效位數為6位,不包括小數點,即預設設定有setprecision(6),此預設設定還包含雙精度浮點數

6.precision(0)的問題:

在vs中,

如果precision(0)直接使用,則等同於設定預設有效位數,即precision(6);

如果與fixed連用,則都表示設定小數點後的精度為0,即沒有小數字;

如果與scientific連用,則等同於設定預設有效位數,即precision(6),即表示設定小數點後的精度為6

綜上,在vs中設定精度為0時,存在預設精度6和設定精度0的顯隱性問題,只有當與fixec連用,設定精度0才會顯示出來;其他情況下,

顯示的都是預設精度6

在dev中設定精度0時,存在設定精度1和設定精度0的顯隱性問題,當與fixed或者scientific連用,設定精度0顯性;其他情況下,設定

精度1顯性

*/

//基本例子
#include using namespace std;

int main()

浮點數精度問題

一 例子 首先我們去編譯器試試 double a 1.9 通過新增監視檢視a的值 會發現a的值是1.8999999 二 開始今天的學習 在最開始學c 的時候並沒有對浮點數進行很深入的學習,認為浮點不就是小數嘛,首先在c 的巨集裡面有 flt max 和 flt min 的定義,float是四位元組的...

浮點數精度之謎

話要從業務 裡的bug說起,大致過程是前端運算 2.07 1 之後結果卻是1.0699999999999998,老司機們都知道是浮點數運算的精度丟失導致的,在檢視了下具體 果然處理不當。因此我深究一番,並誕生了此文。此處重點強調兩個認識誤區 首先不得不說說浮點數的表示方法,任何數在計算機面前都會被處...

PHP 浮點數的精度

浮點數的精度有限。儘管取決於系統,php 通常使用 ieee 754 雙精度格式,則由於取整而導致的最大相對誤差為 1.11e 16。非基本數 算可能會給出更大誤差,並且要考慮到進行復合運算時的誤差傳遞。此外,以十進位制能夠精確表示的有理數如 0.1 或 0.7,無論有多少尾數都不能被內部所使用的二...