以下は、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);
}
}
このプログラムの出力は、println メソッドを使用した 8.0 です。printf メソッドは適切な精度で値を返していました。printstream のドキュメントから、コンパイラがどのように精度を失っているのか理解できませんでした。失われた精度が通知される警告または何かがあることを望んでいました.これらのタイプの落とし穴を特定する方法について何か考えはありますか? 前もって感謝します。