0

評価を表示する必要があります。そのためには、次のように増分が必要です。

数値が 1.0 の場合、1 に等しいはずです

数値が 1.1 の場合、1 に等しいはずです

数値が 1.2 の場合、1.5 に等しいはずです

数値が 1.3 の場合、1.5 に等しいはずです

数値が 1.4 の場合、1.5 に等しいはずです

数値が 1.5 の場合、1.5 に等しいはずです

数値が 1.6 の場合、1.5 に等しいはずです

数値が 1.7 の場合、1.5 に等しいはずです

数値が 1.8 の場合、2.0 に等しいはずです

数値が 1.9 の場合、2.0 に等しいはずです

数値が 2.0 の場合、2.0 に等しいはずです

数値が 2.1 の場合、2.0 に等しいはずです

等々...

必要な値を計算する簡単な方法はありますか?

4

4 に答える 4

2

1.2 は 1.5 よりも 1.0 に近いため、最も近い 0.5 に丸めているわけではなく、標準の Math.Round() 関数が実際にすべての作業を行うわけではありません。

シーケンスに .2 がある場合は、値を少しシフトする必要があります。

これを使用してみてください:

var shiftBy = ((int)Math.Round(v*10) % 10 == 2) ? 0.1 : 0;

var nearest = Math.Round((v + shiftBy)*2)/2.0;
于 2013-10-14T07:38:06.130 に答える