double相关内容
我被困试图找出为什么这两个操作返回不同的值: Double.NaN == Double.NaN 返回假 Double.NaN.Equals(Double.NaN)返回真 我有回答的第一部分,但没有第二个,而不是“为什么这两个比较返回不同的值” 解决方案 该差异的原因很简单,如果不是很明显。 如果您使用等于运算符 == ,那么你使用IEEE测试是否相等。 如果您使用的是等于(对象)方法,
..
?(1.0-0.9-0.1) -0.000000000000000027755575615628914 ?((双)1.0-(双)0.9-(双)0.1) -0.000000000000000027755575615628914 ?((双)1.0-(双)0.9-(双)0.1).GetType() {名称=“双”全名=“System.Double”} ?((双)1.0-(双)0.9-(双)0.1)
..
Simimilar问题 http://stackoverflow.com/questions/1193630/add-two-double-given-wrong-result 这是一些简单的线条: 公共静态字符串DegreeToRadianStr(双学位) { 双piBy180 =(Math.PI / 180); 双瓦尔=(piBy180 *度)
..
我试图来解决这个几个小时,完全不明白编译器在这里做。我有串,基本上是这样的: “KL10124叛徒#2 - + XX-+ 0.25 - 更多的东西” 和需要读出双'0.25'编程。调用上述S中的字符串,下面的两行不工作: 的String [] H = s.Split(' - '); 串H 2 = H [2] .Substring(1中,h [2] .Length - 2);
..
我有这样的字符串“1.79769313486232E + 308”,我试图将其转换为一个.NET数值(双?),但我得到下面的异常。我使用 Convert.ToDouble()。什么是正确的方式做到这一点的转换? 发生OverflowException:值要么过大或过小的双 解决方案 该问题可能是由于这样的事实: Double.MaxValue 被转换为字符串,而当该字符串是输出,而不是所
..
短版:为什么不让我有强迫60,和INT,到双,这样我就可以利用分区与另一双,如果我在乎的小数部分。? 长版:我的老板叫我出去线code。我测试了它,它是工作完全正常,但他认为我有一个bug等待发生。 INT durationinseconds = 61; //这实际上是从double.tryparse填充 //从字符串的值从XML文档
..
在数据格式,其中所有基础类型都是字符串,数字类型必须转换为标准化的字符串格式可以按字母顺序进行比较。例如,短的值 27 可以重新presented为 00027 如果没有负面影响。 什么是重新present一个双作为一个字符串的最好方法是什么?在我来说,我可以忽略底片,但我很好奇,你如何重新present双重无论是哪种情况。 更新 基于乔恩斯基特的建议 ,我现在用这个,虽然我不是100%肯定
..
短的问题,为什么 Assert.AreEqual(1.0,double.NaN,1.0)通过?而 Assert.AreEqual(1.0,double.NaN)失败。 难道是MSTest的(Microsoft.VisualStudio.QualityTools.UnitTestFramework)中的错误还是我失去了一些东西呢? 最好的问候,埃吉尔。 更新:也许应该补充一点,后面我的问题的原
..
我有一个使用一个点(“。”)作为小数点分隔源XML,我使用逗号(“,”)作为小数点分隔符的系统上分析这一点。 结果,0.7的值被解析与 Double.TryParse 或 Double.Parse 为700万 我的选择是正确解析?其中之一是与与string.replace('',''),但我不认为我喜欢这个很喜欢。 解决方案 XML标准是明确的关于日期和数字等的格式这有助于确保XML是平台
..
我用下面这段加法的结果code,在一些神秘的情况下,是不是因为它应该是: 双_west = 9.482935905456543; 双_off = 0.00000093248155508263153; 双_lon = _west + _off; //检查预期的结果 Debug.Assert的(_lon == 9.4829368379380981); //有时我9.48293685913086为_
..
我读从我的App.config的值;这就是: <添加键=“someValue中”值=“0.05”/> 和我尝试将其转换为加倍做: 变种D = double.Parse(ConfigurationManager.AppSettings [“someValue中”]); 和我获得0.05 5.0 insteads。 你能指点?我该怎么办错了,我应该怎么分析呢? 解
..
更新:我只是偶然发现了这埃里克利珀的回答以另一个问题(他引用规范): 读取和其他类型的读写, 包括长,ULONG,双,和 小数,以及用户定义 类型,不能保证是 原子。 确定,所以读双是没有的原子。这意味着价值可能被修改年年读,对不对?那么,如何读双值以原子? 我注意到有一个但是没有 Interlocked.Read 为双值,即使 System.Double 是一个64位的值。 我看到在
..
我只是碰到了.NET会的默认的DO Double.ToString()用科学记数法,如果有精彩的“功能”足够的小数位。 .005.ToString()//“0.005” .00005.ToString()//“5E-05” 有谁知道一个有效的方法来获得这个显示为一个字符串的标准(非科学)的符号? 我见过的感谢您的帮助。 编辑: 所需的输出: .00005.ToStrin
..
我想这个字符串转换: 0.55000000000000004 来这双: 0.55 。 那怎么办? 解决方案 是一个字符串或双? 如果它是一个字符串: 双D = double.Parse(S,CultureInfo.InvariantCulture); 字符串s =的String.Format(“{0:0.00}”,D); ,如果它已经使用第二线的双重只是格式
..
.NET是否有一个内置的方法来计算一个给定的双倍 ULP 或浮? 如果没有,什么是最有效的方法,这样做? 解决方案 看来功能是pretty的琐碎;这是基于伪code在接受的答案被vulkanino链接的问题: 双值=什么; 长位= BitConverter.DoubleToInt64Bits(值); 双nextValue = BitConverter.Int64BitsToDouble(位
..
双温度; 临时=(双)Convert.ToDouble(“1234.5678”); 嗨伙计们和女士们,我不能为我的生命弄清楚为什么上面的线是行不通的。上面一行给了我一个运行时错误,说; 类型的未处理的异常 System.FormatException发生在 mscorlib.dll中 信息:输入字符串 不正确的格式。 解决方案 据我所知转换方法使
..
公共类MyClass的 { 公共常量十进制常量= 0.50; //错误CS0664 } 产生这个错误: 错误CS0664:double类型的文字不能被隐式转换为 键入“十进制”;使用“M”后缀来创建一个文本这种类型的 作为记录。但这部作品: 公共类MyClass的 { 公共常量十进制常量= 50; // 好 } 我不知道他们为什么禁止的第一个
..
我想小数点更改为C#另一个角色。我有一个双变量值 双重价值; 当我使用命令: Console.WriteLine(value.ToString()); //输出为1,25 我知道我能做到这一点: Console.WriteLine(value.ToString( CultureInfo.CreateSpecificCulture(“EN-GB”))); //输出为
..
我有一个简单的C#功能: 公共静态双楼(双精度值,双步) { 返回Math.Floor(价值/步)*步骤; } 这比计算人数较多,低级或等于“值”,即多个“步骤”的。但它缺乏precision,如在下面的测试看出: [TestMethod的() 公共无效FloorTest() { 诠释小数= 6; 双重价值= 5F; 双步= 2F; 双重预期=
..
我使用C#。 我有一个名为x的双变量。 在code,X被赋予0.1的值,我检查它的'如果'的语句比较x和0.1 如果(X == 0.1) { ---- } 不幸的是它不进入if语句 1)我应该使用双或双??? 2)什么是这背后的原因是什么?您能否提供一个解决方案吗? 解决方案 这是一个标准的问题,由于计算机如何存储浮点值。搜索这里“浮点问题”,你会发现大量信息。
..