整数をdouble値で除算しようとしていますが、精度が低下していると思います。
#include <cmath>
#include <cstdio>
int main()
{
double t=5465/54.0;
double t1=(double)5465/(double)(t);
double t3 = 5465.0/101.203;
printf("%lf %lf %lf\n",t,t1,t3);
return 0;
}
上記のコードの場合、の値t3 = 54.0003
は期待どおりですが、t154
の場合、t3と同じ値を取得する代わりになります。どんな間違いをしているのかわからない