私は幅888ピクセル、高さ592ピクセル、幅:高さのアスペクト比が3:2のイメージを持っています。Visual Studio 2015では、「キャストは冗長です」と表示されています。どうして?
以下が原因BitmapDecoder.PixelWidthとBitmapDecoder.PixelHeightとして整数演算/トランケーションにより、1の間違った値を生成するには、両方のuint
(符号無し整数)、及びBitmapDecoderオブジェクトである以下decoder
です。
double aspectRatio = decoder.PixelWidth/decoder.PixelHeight;
以下は1.5の期待正しい値が得られますが、Visual Studioは、「キャストが冗長である」と言うが、なぜ?
double aspectRatio = (double)decoder.PixelWidth/(double)decoder.PixelHeight;
あなただけの1(ダブル)キャストを必要とします - double/int = doubleです。またはint/double = double。 – Dmitriy
doubleを任意の数値型で分割すると、結果は常にdoubleになります。 –
'double aspectRatio = static_cast(decoder.PixelWidth)/ decoder.PixelHeight;は、コンパイラが' PixelHeight'をdoubleとして使用するのに十分なはずです。 –
Pixelchemist