一,(不強制型別轉換時)是否可以輸出非零小數問題
①結果變數定義為int型,此時無論參與運算的變數是什麼型都不能輸出非零小數。
②結果為double型,參與運算的變數為int型,此時也是只能輸出0。
③都為double型,但實際參與運算值是整數,此時可以輸出非零小數。
④參與運算的不是變數名,而是直接數字的運算。例如:
#include
intmain()
結果是1.00,因為3/2兩個都是整數,編譯器會以為是整數的運算直接將結果的小數部分去掉,
所以應該至少讓3或2中的乙個變為小數,可以是3.0,3.00,2.0,2.00,只要有小數點就行。
二,強制型別轉換
只能由高精度轉換為底精度,例如
cout<<
setiosflags
(ios::fixed)
<<
setprecision(3
);double a=
6.65
,b=5.67
,c,d;
c=a/
2; d=b/3;
cout<<
(int
)c
(int
)d/本來是double型,可以輸出為int型
三,關於精度轉換問題(c++中一般不會出現這種問題)
自然情況,只能由底精度向高精度轉化,不能由高精度向底精度轉化。
例如:
//c語言版
float a=
3,b=
6.2,c,d;
//變數全部用float型
c=a/
2; d=b/2;
printf
("%d %d"
,c,d)
;//第乙個結果
printf
("%.2f %.2f"
,c,d)
;//第二個結果
此時,
第乙個結果不合法,不能由高精度轉向底精度。
第二個結果正確。可以輸出非零小數。
C 14系列(2) C C 的時間函式
為了好好研究下c 14,順便複習下以前的c 知識。搞了個git 不斷完善中 裡面會慢慢封裝一些常用的函式,並做一些測試驗證,工程是建立在ubuntu的eclipse之上,見系列 1 環境搭建。參考 時間函式常用到的幾個概念 calendar time 日曆時間 epoch 時間點 clock tic...
js保留2位小數的例項參考
例1,js保留兩位小數 對於一些小數點後有多位的浮點數,可能只需要保留2位,但js沒有提供這樣直接的函式,所以寫了乙個小函式。function changetwodecimal x var f x math.round x 100 100 return f x 功能 將浮點數四捨五入,取小數點後2位...
小數點後幾位的保留問題
1 2 顯示數量的地方將數字格式化,判斷如果小數點後為0,3 則不顯示小數點以及後面的00,如果有一位,顯示一位 4 小數,如 134.5 如果兩位,顯示兩位小數,如 123.45 5 如果超過兩位,四捨五入到兩位 6 7 8 9public static string formatequantit...