C++の(暗黙的な)型変換に関する小さな問題があります。整数と浮動小数点の変換
float f = 554344.76;
int x1 = f;
std::cout << x1 << std::endl;
プリント554344
(切り捨てるまたは小数点以下の切断)をintへフロートしかしfloat f = 5543444.76;
とそれを交換するときには、(切り上げ)5543445
を印刷します。最初のケースでは切り捨てられ、2番目のケースでは四捨五入されるのはなぜですか?それに加えて、それは完全に奇妙な結果をもたらす(例えば5543444675.76
は5543444480
になる)。どうして?
int x1 = f;
とlong int x2 = f;
の違いは何ですか?
long int li;
float x3 = li;
std::cout << x3 << std::endl;
に運動への解決策をfloatへ
2. long int型の値が切り捨てされていることを言うと、多数の不正な値の結果。試してみるとlong int li = 5435;
は切り捨てられません。または、long int li = 5435.56;
を切り捨てた意味ですか?第二に、なぜ大量の数値が不正確になるのでしょうか?長い整数と浮動小数点数は同じビット数だと思います。
3.文字
char c = 130;
double x4 = c;
std::cout << x4 << std::endl;
を倍増させるのはなぜ-126
しばらくchar c = 100;
でこの結果が正しい値を提供していますか?これは何も(出力なし)を印刷しない
int i = 200;
char x5 = i;
std::cout << x5 << std::endl;
をcharへ
4. int型。どうして? 255までの値を格納できるので、結果は正しくなければならないと思います。
4.チェックするASCIIコード200 .. –
2.浮動小数点をintに初期化すると、小数部は無視されます。 –
1.私は "float f = 5543444.76;で置き換えることを理解していません。"それはすでにそこにあるものです。あなたは何を置き換えますか? – user463035818