1
我遇到了一個問題,一個大浮在C#代碼,我需要轉換爲int32
:轉換大浮到整數
int test = (int)199999900f;
測試最終被設置爲199999904.
燦任何人都可以解釋這裏發生了什麼,爲什麼我在這一行代碼中獲得4的轉換?
我遇到了一個問題,一個大浮在C#代碼,我需要轉換爲int32
:轉換大浮到整數
int test = (int)199999900f;
測試最終被設置爲199999904.
燦任何人都可以解釋這裏發生了什麼,爲什麼我在這一行代碼中獲得4的轉換?
浮點只有有限的存儲量(依賴於實現,可能是32位),所以你超過了這一點。基本上,第9位數字不能存儲在浮動中。 你應該使用Double而不是float,這會給你更多的空間。
如果你的數字是一個常數,就像例子中所示的那樣,你根本不應該使用ny float,而只是把它作爲一個int。