有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    精度是指定的位数,而精度指定与真实结果的差异

    举个例子:

    3.14的精度低于3.149,但如果将其视为pi值,则更准确

    Java{}的精度约为6-7位小数。这取决于输入的准确性和算法的数值稳定性,以及结果的准确性

  2. # 2 楼答案

    如果你浏览一下IEEE 754的文档,它描述了单精度和双精度类型。它说,“几乎所有硬件和编程语言都使用相同二进制格式的浮点数”

    通常的格式是总长度为32或64位:

    Format: Single Precision

    Total Bits: 32

    Significant Bit: 23 + 1 sign

    Exponent Bits: 8

    Smallest Number: ca. 1.2 ⋅ 10(pow)-38

    Largest Number: ca. 3.4 ⋅ 10(pow)38


    Format: Double Precision

    Total Bits: 64

    Significant Bit: 52 + 1 sign

    Exponent Bits: 11

    Smallest Number: ca. 5.0 ⋅ 10(pow)-324

    Largest Number: ca. 5.0 ⋅ 10(pow)-324

    Java遵循关键字支持的单精度和双精度类型

    float f = 0.1f; // 32 bit float, note f suffix
    
    double d = 0.1d; // 64 bit float, suffix optional
    

    如果在类、接口、方法上使用strictfp关键字,它将强制所有中间结果遵循IEEE 754值,并保证所有平台上的结果一致(准确性)。如果没有strictfp关键字,实现可以在可用的情况下使用扩展的指数范围,从而在许多常见CPU上产生更精确的结果和更快的执行

    因此,作为用户/程序员,可以指定精度(舍入值)

    例如:

    String.format("%.2f", 3.2399) // returns "3.24"
    String.format("%.3f", 3.2399) // returns "3.240"
    

    准确度是指计算或规范符合正确值或标准的程度

    有关更多详细信息,请查看Java SE Specifications