gpt4 book ai didi

java - System.out.printf() 用于 float 数据类型

转载 作者:行者123 更新时间:2023-11-29 05:46:56 24 4
gpt4 key购买 nike

我这里有一个非常短的代码片段:

public class FormatFloat {
public static void main(String[] args) {
float x = 12.345f;
System.out.printf("%18.7f%s", x, "\n");
System.out.printf("%18.8f%s", x, "\n");
System.out.printf("%18.10f%s", x, "\n");
System.out.printf("%18.15f%s", x, "\n");
}
}

我认为输出是

        12.3450000
12.34500000
12.3450000000
12.345000000000000

但是我得到了

        12.3450003
12.34500027
12.3450002670
12.345000267028809

谁能告诉我背后的原因?

最佳答案

问题与 IEEE 754 二进制浮点表示有关。

请参阅this问题的完整描述的链接。

关于java - System.out.printf() 用于 float 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15524643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com