宣告時,只要有小數部分float必須加f/f,而double卻不用
//float的宣告只要有小數部分就要加f,不然會報不能隱式的將double型別轉換為float型別。float f1 = 1;//ok
float f2 = 1.1f;//一定要f
float f3 = 1.23f;
//double宣告不需要加d
double d1 = 1;
double d2 = 1.2;
double d3 = 1.232434377777777;
//double的精度高於float,double轉為float為顯示轉換,float轉為double為隱式轉換,而且float只能顯示小數點後6位,其餘的四捨五入f1 =(float) d3;
console.writeline(5 / 8);//0 int/int=int 小數部位被省略console.writeline(5.0 / 8.0); double/double=double
console.writeline(5.0 / 8); double/int=double
console.writeline(5f / 8f); float/float=float
console.writeline(5d / 8d); double/double=double
console.writeline(1/3*3);//0
console.writeline(1*3/3);//1
console.writeline(1.0/3*3);//1
float和double型資料算術運算
計算機中儲存數字是用2進製表示的,所有在儲存double型別的資料並不能精確到0.1,所以在用double做操作的時候會因為精度問題出現一些和實際不一樣的結果,如果要求精度很高的話就用bigdecimal來計算,bigdecimal提供了加 減 乘 除的方法,直接呼叫就可以了。如 計算兩個doubl...
double和float的區別
float a 0.1 編譯器報錯 warning c4305 initializing truncation from const double to float 原因 在c c 中 也不知道是不是就在vc 中這樣 上述語句等號右邊0.1,我們以為它是個float,但是編譯器卻把它認為是個doub...
float和double儲存方式
在c c 中float是32位的,double是64位的,兩者在記憶體中的儲存方式和能夠表示的精度均不同,目前c c 編譯器標準都遵照ieee制定的浮點數表示法來進行float,double運算。無論是float還是double,在記憶體中的儲存主要分成三部分,分別是 1 符號位 sign 0代表正...