フォローは何らかの形でfloat値の精度に関係していると思いますが、正確にフォローする動作がどのように、そしてなぜ観察されるのかはわかりません。私はJavaで次のコードを持っています:
class float_int
{
void float_to_int(float val)
{
int int_val = (int)val;
float remain_val = val - (float)int_val;
System.out.println("val - " + val);
System.out.println("int_val - " + (float)int_val);
System.out.println("remain_val - " + remain_val);
}
public static void main(String args[])
{
float_int obj = new float_int();
obj.float_to_int((float)12.345);
}
}
次の出力が得られます。
val - 12.345
int_val - 12.0
remain_val - 0.34500027
なぜremain_valの最後に余分な「27」が表示されるのかわかりません。