如何在C中使用12位数字?

Des*_*ers 5 c digit

我正在处理一个数学例子.我需要为我的代码使用12位数字.那么我应该使用哪种数据类型来使用我的函数中的数字?

pax*_*blo 5

如果你有一个64位整数类型,我会选择它,因为它给你(18个全数字)范围:

?9,223,372,036,854,775,808 to
+9,223,372,036,854,775,807
Run Code Online (Sandbox Code Playgroud)

对于其他任务(甚至更大的整数或大量浮点值),我使用GMP,即GNU多精度库.它的表现令人印象深刻.


Del*_*ani 2

64 位整数 ( long, int64_t, unsigned long, uint64_t) 应该可以解决问题,或者如果您需要小数,double或者long double.

  • 如果你需要小数,那么你在纯 C 语言中就不走运了;`double` 和 `long double` 是浮点类型,而不是小数类型。 (3认同)
  • 您不应该推荐“long”作为 64 位类型。它在大多数系统上都是 32 位的,而 C 标准只要求它至少为 32 位。 (2认同)