2010-08-13 21 views

回答

2

64位整數(longint64_tunsigned longuint64_t)應該做的伎倆,或者如果你需要小數,doublelong double

+3

如果你需要小數,你在純C中運氣不好; double和long double是浮點類型,而不是十進制。 – Joey 2010-08-13 11:33:33

+0

第I *號*也提到了64位整數,即使在簽名時也能保持12位數以上! – 2010-08-13 11:35:13

+0

我應該在打印時使用什麼? 「%ld」只要我記得很久了? – DesperateCoders 2010-08-13 11:35:20

4

如果你有一個64位的整數類型,我會與該走了,因爲它給你的(18位全)範圍:

−9,223,372,036,854,775,808 to 
+9,223,372,036,854,775,807 

對於其他任務(甚至更大的整數或進行大規模的浮點值),我用GMP,在GNU多精度庫。它的表現令人印象深刻。

1

你也可以使用帶格式說明符「llu」的「unsigned long long」。它適用於C中的12位數字。

unsigned long long i=600851475143; 
printf("%llu",i); 
相關問題