0
2桁の数字を分割し、2つの異なる変数に結果を得ようとします。特定の番号の問題がありました:23
2桁の数字を分割する
int root = 23;
float div = (float)root/10.0; // div = 23.0/10.0 = 2.3
int left = (int)div; // left = 2
int right = ((float)div - (float)left) * 10.0; // right = (2.3 - 2) * 10.0 = 0.3 * 10.0 = 3
printf("%d", right); // 2, why ?
浮動小数点演算が多く、最終結果にいくつかの問題があります。私は何かを見逃したり、見つけたりしなかったのですか?
OMG、 'A =ルート/ 10。 b = root%10; ' – 0andriy
10.0が時々intとして解釈されるので、2番目の数値を変換することによって解決される同様の問題があったことを少し思い出します - 書き直してみてください:' float div =(float)root /(浮動)10.0; // div = 23.0/10.0 = 2.3' – pytomaniaq
注意事項として、浮動小数点数は正確ではないので通常は避けることをお勧めします。 –