acm應該注意的資料型別問題

2021-05-01 09:31:32 字數 879 閱讀 2851

其中long 和 int 範圍是[-2^31,2^31),即-2147483648~2147483647。而unsigned範圍是[0,2^32),即0~4294967295。也就是說,常規的32位整數只能夠處理40億以下的數。

l ong long的範圍是-2^63 ~ 2^63-1,unsigned long long的範圍是0 ~ 2^64-1

有的編譯器不支援%lld,%ld, %llu和%lu,因此long long 用cin, cout輸出比較保險。

關於double說明如下:

1.浮點數一律使用double,不要使用float(除非記憶體實在不夠,不過這種情況至今尚未出現過),float精度實在太低.double的精度是可以令人放心的,對於acm賽題中涉及的浮點運算,double一般都可以保證最後結果小數點後7,8位都是精確的。double的有效數字位數可以通過 printf("%lf/n",pow(2,100)); 來測試。 

2.浮點數一般不可以判等,比較大小也要考慮誤差,一般浮點數的比較可以寫成fcmp函式:

code:

int fcmp(double a,double b)

這樣,fcmp(a,b)>0 說明a>b,<0說明a4.如果最後要求輸出浮點數,要特別注意避免-0.00的出現。如果要求輸出到小數點後兩位,則輸出前要加上:code:

if(fabs(ans) < 0.005) ans=0;

再輸出。

5.對浮點數取整,要特別注意處理誤差。如果其理論值就是整數,那麼建議加0.5後取整(若向上取整,則減0.5)。否則,若理論值是5,由於誤差算出來的是4.999999,那麼取整就會得到4。 如果理論值不是整數,那麼取整就只能加乙個很小的正數(若向上取整,則要減去乙個很小的正數),具體值根據實際情況而定,有些時候甚至不需要處理誤差

資料型別的問題

好久沒有上來寫點什麼東西了,也有一段時間沒有到部落格堂撥客園上面來采風了,今天一上來就看到這個文章 資料型別的bug還是?裡面羅列了一些問題,也許我能略解一二。比如說問題二 dim ss as double ss 400 1000 在vb6中,報越界 ss 400 100000沒有異常 其實是這樣的...

ECMAScript的資料型別注意點

ecmacript包含6中資料型別 五種基本資料型別 number string boolean undefined null 一種複雜資料型別 object 1 特殊知識點 1 typeof null null 原因 null是乙個空的物件引用 2 safari5及之前的版本,chrome7及之前...

資料型別問題

powerdesigner中mandatory意為 not null 數值型別 int和integer是同義詞,完全一致。powerdesigner欄位的預設值設定,和charset設定 mysql的索引問題 主鍵本身就具有索引,設定索引可以減少訪問時間,最好在需要進行查詢的字段上新增索引 uniq...