这是 C 程序的代码片段,
#include <stdio.h>
int main(int argc, char *argv[]) {
float kk=2*3/4+4/4+8-2;
printf("%f",kk);
}
这个程序的输出是 8.000000
用 JAVA 8 编写的相同代码。
class Untitled {
public static void main(String[] args) {
float kk=2*3/4+4/4+8-2;
System.out.println("\n----- Converting to the precision -----\n");
System.out.printf("%f",kk);
System.out.println("\n----- Converting to the Integer -----\n");
System.out.println(kk);
}
}
这个程序的输出是 8.0 和 println 方法。printf 方法以适当的精度返回值。从 printstream 文档中,我不明白编译器是如何失去精度的。我希望会有一些警告或通知丢失精度的东西。关于如何识别这些类型的陷阱有什么想法吗?提前致谢。