我有一個方法,計算兩個xyz線之間的距離,並返回一個很好的長雙數,如10,12345678963235。 但我只需要10,12345,那對我來說就夠了。我怎樣才能做到這一點? 這是返回給我的值的方法:只獲得一個X長度數字的前10個數字
public static double Distance(Vector3 v1, Vector3 v2)
{
return
(
Math.Sqrt
(
(v1.X - v2.X) * (v1.X - v2.X) +
(v1.Y - v2.Y) * (v1.Y - v2.Y) +
(v1.Z - v2.Z) * (v1.Z - v2.Z)
)
);
}
謝謝!
我不同意。當一個數字應該被管理到一定程度的準確性,你應該四捨五入(或截斷)。作爲示例,我的行業中使用的一個軟件在貨幣的小數點後保留6位有效數字,但僅顯示正常的2.這會導致錯誤和發票總數看起來不匹配訂單項總和。 – 2010-08-28 20:25:52
@Mike:我不同意。浮點值模擬物理數字。大自然不計算10個手指,只有人類能做到。沒有普遍的常數可以四捨五入到一個不錯的數字,並且仍然是準確的。一隻滿載的燕子不會在10點飛行。每小時12345英里,對於一英里或一小時來說是毫無頭緒的。然而,有一類計算表達*希望10的權力。會計師對此很挑剔。但是這些計算應該總是使用System.Decimal,永遠不會使用double或float。 – 2010-08-28 21:08:08
也許,我在迴應中提到了強調的「從不」。還有,是歐洲還是非洲的燕子? – 2010-08-29 16:29:52