0

.NET ライブラリには次のような関数があります
System.Math.Round(double, int)

しかし、それを機能させるために double 値を float にキャストする必要があるのはなぜですか..??
次のスクリーンショットを見てください。

ここに画像の説明を入力

4

2 に答える 2

6

次の機能

Math.Round(double value, int digits)

Math.Round(double value、int Digits)はdoubleを返します

を返しますdouble。次のコードを使用して、出力floatに名前のを定義しようとしました。ここで、は値の2倍であり、整数を表します。dMath.Round(n,2)n1.123452

double n = 1.12345;
float d = Math.Round(n,2);

上記の関数からの出力はdoubleであり、ではないため、実際にはエラーが発生しますfloat

Cannot implictly convert type 'double' to 'float'. An explicit conversion exists (are you missing a cast?)

これを修正するには、次のように変更float d = Math.Round(n,2);しますdouble d = Math.Round(n,2);

ありがとう、
これがお役に立てば幸いです:)

于 2012-11-01T06:29:38.830 に答える
1

doubleからfloatに変換すると、精度が失われ、暗黙的に実行できなくなります。より正確なdouble変数にfloat値を割り当てると、コンパイラーは文句を言いません。

于 2012-11-01T06:31:13.587 に答える