Tag: 双倍

c#中的划分不符合我的预期

我试图写一些东西,以使我的图像正确显示。 我有2个号码“breedtePlaatje”和“hoogtePlaatje”。 当我加载这两个变量值时,我得到“800”和“500”,我希望“verH”为(500/800)= 0,625。 那个verH = 0的值。 这是代码: int breedtePlaatje = Convert.ToInt32(imagefield.Width); int hoogtePlaatje = Convert.ToInt32(imagefield.Height); //Uitgaan van breedte plaatje if (breedtePlaatje > hoogtePlaatje) { double verH = (hoogtePlaatje/breedtePlaatje); int vHeight = Convert.ToInt32(verH * 239); mOptsMedium.Height = vHeight; mOptsMedium.Width = 239; //Hij wordt te klein en je krijgt randen te zien, dus plaatje zelf instellen […]

双变量保持错误的值

与Math.Atan2类似的问题或C#中的类实例问题并添加两个给出错误结果的双重问题 这是简单的线条: public static String DegreeToRadianStr(Double degree) { Double piBy180 = (Math.PI / 180); Double Val = (piBy180 * degree); // Here it is giving wrong value } piBy180 *度= -3.1415926535897931但是Val = -3.1415927410125732 替代文字http://www.imagechicken.com/uploads/1262936639009840000.jpg我真的不知道该怎么做..请问一些有关这方面的问题,以便我可以指出哪里出错了。 令人惊讶的是,piBy180保持了正确的价值。 同样的事情也发生在其他function上,但有些我操纵如何获得正确的值。 我正在使用MS Visual Studio的C#.net SP1。

为什么将double.epsilon添加到一个值会产生相同的值,完全相同?

我有一个unit testing,测试边界: [TestMethod] [ExpectedException(typeof(ArgumentOutOfRangeException))] public void CreateExtent_InvalidTop_ShouldThrowArgumentOutOfRangeException() { var invalidTop = 90.0 + Double.Epsilon; new Extent(invalidTop, 0.0, 0.0, 0.0); } public static readonly double MAX_LAT = 90.0; public Extent(double top, double right, double bottom, double left) { if (top > GeoConstants.MAX_LAT) throw new ArgumentOutOfRangeException(“top”); // not hit } 我以为我只是通过添加最小可能的正双倍来向尖端90.0倾斜,但是现在没有抛出exception,任何想法为什么? 调试时,我看到top为90,当它应该是90.00000000 …. 编辑:我应该想一点, 90+Double.Epsilon将失去其分辨率。 似乎最好的方法是做一些转移。 解: […]