PHP-整型浮点型

作者: hellowenqi | 来源:发表于2017-03-10 11:16 被阅读266次

    1. 不同进制数表示

    十六进制:0x或0X开头
    十进制: 1-9开头
    八进制:0开头
    2进制:0b开头

    官方说明

    2. 字节数

    与平台有关,64位机器就是64位,32位操作系统就是32位,PHP7之前,windows只能是32bit;位数通过PHP_INT_SIZE设置,最大值使用常量PHP_INT_MAX (5.0.4), 最小值 PHP_INT_MIN(7.0.0)

    3.类型转换

    1. float和double 的存储

    示例一
    所以,关于整数部分在确保精度的范围内:
    int(假设为32位)能表示的最大范围为 -2^31 ~ 2^31 - 1;
    float能表示的最大的最大的整数范围是: -2^24 ~ 2^24;
    double能表示的最大的最大的整数范围是: -2^53 ~ 2^53;
    所以,当一个非常大的float数转为为32位整形时可能会丢失精度,即使float可以表示很大范围的整数。

    2. 浮点数精度问题
    详细参考:http://floating-point-gui.de/

    示例
    floor((0.1 + 0.7) * 10)  // 输出7,因为内部存储类似于7.9999999999999991118....
    

    关于浮点型的使用

    • 小数的随后一位不可靠
    • 不要使用小数来做相等比较

    3. php强制类型转化

    (int) True    //1;
    (int) False   //0;
    (int) Array() //0;
    (int) Array('1', 'b') //1;
    

    float round(float $val, int $precise)

    官方例子

    相关文章

      网友评论

        本文标题:PHP-整型浮点型

        本文链接:https://www.haomeiwen.com/subject/wymcgttx.html