C99浮点中间结果

时间:2018-05-15 18:24:07

标签: c floating-point language-lawyer c99

根据C99标准:

  

6.3.1.8.2 :浮动操作数和浮动表达式结果的值可以比该类型所要求的更精确和范围表示;因此,类型不会改变.52)>

但是,在附件F的范围之外,我们有:

  

5.2.4.2.2.7 :具有浮动操作数的操作值和通常算术转换以及浮动常量的值将被评估为其范围和精度可能大于所需格式的格式。类型。评估格式的使用以FLT_EVAL_METHOD的实现定义值为特征:19)

FLT_EVAL_METHOD 可以是:

  • -1:indeterminable
  • 0:评估范围内的所有操作和常量
  • 的精度
  • 1:评估的操作和常数 键入float并加倍到double类型的范围和精度, 评估长双精度运算和常数到范围和 长双精度的精度
  • 2:评估所有操作 和long double类型的范围和精度的常量。

因此,对于符合要求的实施, FLT_EVAL_METHOD == [0,1,2] 否决 6.3.1.8.2 ?也就是说,不需要显式的强制转换和/或类型赋值来强制执行给定的宽度?

0 个答案:

没有答案