今、私は次のようにやっています:
uint8_t ManualFlow = 40; // 0 -> 255 Unsigned Char
uint24_t ME; // 0 -> 16777215 Unsigned Short Long
ME = (uint24_t) ManualFlow*10; // Have to make this hack otherwise malfunction in calculation
ME /= 6;
ME *= (80 - 60);
ME /= 100;
ME *= 414;
最終結果:
40*10 = 400
400/6 = 66
66*20 = 1320
1320/100 = 13
13*414 = 5382
私が好きなものはこれに似ています:
4/60 = 0,0667 * 20 * 4188 * 0,998 = 5576 (more accurate).
float
sまたはsを使用せずにこれをより正確に行うにはどうすればよいですかdouble
。最も重要なのは、コードサイズを大きくしすぎないことです。
よろしくソナイト