转换为 时,的值不会更改。显示的数字存在差异,因为需要更多的数字来区分值与其相邻值,这是 Java 文档所要求的。这是 的文档,从 的文档中引用(通过几个链接)。float
double
double
toString
println
的确切值为 125.31999969482421875。两个相邻的值为 125.3199920654296875 和 125.32000732421875。观察 125.32 更接近 125.31999969482421875,而不是任何一个邻居。因此,通过显示“125.32”,Java已经显示足够的数字,以便从十进制数字转换回来重现传递给的值。125.32f
float
float
float
println
125.31999969482421875 的两个相邻值为 125.3199996948242045391452847979962825775146484375 和 125.3199996948242329608547152020037174224853515625。
观察到 125.32 比原始值 (125.31999969482421875) 更接近后一个邻居。因此,打印“125.32”不包含足够的数字来区分原始值。Java 必须打印更多数字,以确保从显示的数字转换回重现传递给 的值。double
double
double
println