float和double資料型別的宣告,轉換和計算

2022-03-04 17:46:41 字數 818 閱讀 1939

宣告時,只要有小數部分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代表正...