以下のエラーが発生します。
int calc_ranks(ranks)
{
double multiplier = .5;
return multiplier * ranks;
}
メソッドで定義されてdouble
いるようにint
、戻り値の型はではありませんcalc_ranks
。に丸め/キャストするにはどうすればよいint
ですか?
回答:
toInt()を使用しnum
て、をに変換できint
ます。
int calc_ranks(ranks)
{
double multiplier = .5;
return (multiplier * ranks).toInt();
}
まったく同じことを行うには、切り捨て除算演算子を使用できることに注意してください。
int calc_ranks(ranks) => ranks ~/ 2;
次のいずれかを使用できます。
double d = 20.5;
int i = d.toInt(); // i = 20
int i = d.round(); // i = 21
int i = d.ceil(); // i = 21
int i = d.floor(); // i = 20
ダーツラウンドダブルからint
round()
メソッドを使用すると、doubleに最も近い整数を取得できます。
例えば:
int num1 = (2.3).round();
// 2
int num2 = (2.5).round();
// 3
int num3 = (-2.3).round();
// -2
int num4 = (-2.5).round();
// -3
Flutterでdoubleをintに変換するメソッドを試すこともできます
double x = 2.5;
int a = x.toInt();
int b = x.truncate();
int c = x.round();
int d = x.ceil();
int e = x.floor();
print(a); // 2
print(b); // 2
print(c); // 3
print(d); // 3
print(e); // 2