首页 » 网站建设 » 整型转化浮点型php技巧_浮点型和整型之间的转换

整型转化浮点型php技巧_浮点型和整型之间的转换

访客 2024-10-25 0

扫一扫用手机浏览

文章目录 [+]

double d1 = 12.34;int i1 = d1; printf("i1 = %d\n", i1);

浮点值 12.34 转换为整数时,后面的小数部分会被丢弃,因此这段代码的运行结果是:

i1 = 12

如果整数部分无法由整数类型表示,则该行为是未定义的。
例如:

整型转化浮点型php技巧_浮点型和整型之间的转换

double d2 = 98765.43;unsigned short us = d2; printf("us = %d\n", us);

由于 unsigned short 能够表示的最大值是 32767,因此浮点值 98765.43 的整数部分无法被 unsigned short 表示,该行为是未定义的。
在 x64-Ubuntu 环境下,这段代码的运行结果是:

整型转化浮点型php技巧_浮点型和整型之间的转换
(图片来自网络侵删)

us = 33229

注:这里的结果 33229 是由 98765 - 65536 打算得来的,也便是说实行了无符号整型转换过程中的取余运算。
但这在浮点型和无符号整型之间的转换中不是必须的,因此可移植的浮点值的范围是 -1 至无符号整型最大值 + 1 之间。

整型之间的转换

当一个整数类型值被转换为浮点类型时,如果该值能够被浮点类型精确表示,则值保持不变。
例如:

int i2 = 17; double d3 = i2; printf("d3 = %f\n", d3);

由于整数值 17 能够被浮点类型精确表示,因此这段代码的运行结果是:

d3 = 17.000000

如果被转换的整数值在可表示范围值内但不能精确表示,则结果要么是最靠近可表示值的稍大值,要么是最靠近可表示值的稍小值,详细选择哪个值取决于实现定义的办法。
如果被转换的整数值不在可表示浮点值范围以内,该行为是未定义的。

一些隐式转换的结果可能会利用比哀求的浮点型更宽的范围和精度来表示。

#头条创作寻衅赛##C措辞逐日小知识#

标签:

相关文章

微信第三方登录便捷与安全的完美融合

社交平台已成为人们日常生活中不可或缺的一部分。微信作为我国最受欢迎的社交软件之一,拥有庞大的用户群体。为了方便用户在不同平台间切换...

网站建设 2025-02-18 阅读0 评论0

广东高速代码表解码高速公路管理智慧

高速公路作为国家交通动脉,连接着城市与城市,承载着巨大的物流和人流。广东作为我国经济大省,高速公路网络密布,交通流量巨大。为了更好...

网站建设 2025-02-18 阅读0 评论0