我有一个方法,计算两个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