1

と の両方が int の場合、式の出力をa = x * 9 / yfloat にする必要が'x'あります。'y'たとえば、x=64 y= 227それを方程式に入力すると2、小数の答えの代わりに得られます。

コーディング方法:

int y = 227;
int x = 64;
Float a;
a = x * 9 / y;
4

5 に答える 5

2

キャストを有効にするには、数字の 1 つを float 型にする必要があります。a = x * 9.0f / y;

于 2013-02-26T08:06:18.923 に答える
1

ほとんどの言語では、「float」型の式に少なくとも 1 つの要素があると、式全体が float 型になります。

  a = x * 9.0 / y;

一部のメンバーを明示的にキャストすることもできます (言語構文によって異なります)。

 a = (Float)x * 9 / y;

操作の優先度が同じでない場合 (つまり、同じ式の + と *) は、何をキャストするかに細心の注意を払う必要があることに注意してください。次の式は、異なる結果を生成する可能性があります (最初の式はx/9整数として行い、それを "float" にキャストするだけです)。

 a = x / 9 + (Float)y;
 a = (Float)x / 9 + y; 
于 2013-02-26T08:09:58.710 に答える
1

フロートするには型キャストが必要です:

a = (float)x * (float)9 / (float)y;

あなたが使用している言語はわかりませんが、私はC 言語に関して書いています。

私がしたことはExplicit Castingと呼ばれます。

データ型の明示的なキャスト(与えられた変換) は、自動変換よりも優先度が高くなります。

Syntax:  

    (data_type) operand

オペランドは変数または句にすることができます

@yBeeが答えたもの。彼は、式 が float になり、 int でダイブされた float が再び float になるよう に変更 する ことで、 Implicit Casting
の概念を使用しています。99.0f(x * 9.0f)

これを理解するには、自動型キャストを知る必要があります。

Implicit Casting (自動変換) は、(2 番目の変数のデータ型よりも) 小さいデータ型の変数 (オペランド) を、内部でより長い数値長のデータ型の変数に変換するという方法で機能します。混同されているように聞こえるかもしれませんが、例を次に示します。

short int-> int-> unsigned int-> long int-> unsigned long int-> float-> double->long double

@Alexei Levenkovがしていることは何ですか?
両方のテクニックを使用します。まずxExplicit Casting で float に変換してから Implicit Casting により float で計算します。

実際、両方の答えは私の答えよりも優れています。

于 2013-02-26T08:06:04.087 に答える
0

簡単な方法は、最終結果に 1.0 を掛けることです。これで変換されます。

于 2013-04-01T19:33:07.977 に答える
0

わかりました。任意の数値を整数でデバイス化したときに 10 進数の答えを得るには、右側が float または double でなければなりません。こんな感じです

10/3 = 3

10/3.0 = 3.34

とった ?

あなたの場合、あなたができることは、

int y = 227; 
int x = 64;
Float a = x * 9 / (float)y;
于 2013-02-26T08:40:57.930 に答える