\n\n\n...将
\ntime_t值转换为双精度,然后返回...
\n 在什么情况下我可能会在转换过程中丢失数据?
在某些情况下,什么也没有。 time_t是一些真实的类型。C11 \xc2\xa77.27.1 3
\n整数和实数浮点类型统称为实数类型。C11\xc2\xa76.2.5 17
因此,如果time_t与 a 相同double,则转换中预计不会有损失。
time_t通常表示为 32 或 64 位整数。 典型double可以精确编码所有 53 位无符号值(或 54 位有符号整数值),因此当time_t是 32 位整数时,不应发生转换损失。当time_t是 64 位整数时,转换开始对大小超出 2 53double的值进行舍入。
double如果该值来自原始值,则第二次转换后退步骤不应发生任何损失time_t,但如果尝试将任意值double更改为整数,则可能会导致未定义的行为。
不太常见的time_t可能是float、long double、long long等,并且存在类似的问题。
| 归档时间: |
|
| 查看次数: |
9269 次 |
| 最近记录: |