floating-point相关内容
我需要一个简单的浮点舍入函数,因此: double round round(0.1)= 0 round(-0.1)= 0 round(-0.9)= -1 pre> 我可以在math.h中找到ceil()和floor() - 而不是round()。 它存在于另一个名称下的标准C ++库中,或者它缺少了 解决方案 )在C ++ 98标准库中。
..
因此,我得到了我的最后一个问题的答案(I不知道为什么我没有想到的)。我在使用 cout 打印一个 double ,当我不期待它。如何让 cout 使用全精度打印 double ? 解决方案 您可以直接在 std :: cout 上设置精度,并使用 std :: fixed 格式说明符。 double d = 3.14159265358979; cout.precision(17
..
在C#中,我有一个情况我有一个TextBox控件两个可能的号码 中的数字可以是: A).XXXX 或 二).XX 我怎样写,说,一个条件:“如果文本框有四个小数位,然后调用这个函数,否则,如果文本框有2位小数,然后再调用这个函数。” 似乎很容易,但我不知道该如何评价小数。 谢谢了! 解决方案 您可以使用正则表达式 新正则表达式(@“\.\d
..
如何确定一个数,例如1.577,可以精确地在浮动或双格式表示? 这意味着它是真实的1.577不是1.566999999999994324等 编辑: 我寻找一种工具,在那里我可以输入一个数字,它会显示它的双/浮点表示。因此,这不仅是C#的相关问题。 解决方案 您可以使用的在线十进制浮点转换。例如,在1.577的类型,你会得到两个指示,这是不准确: 1)“不精确”复选框被选
..
我要创建一个包含INT32,INT16,单值的内存流。使用的BinaryWriter是没用的,所以我试图使字节数组。因为值是不同类型的,我不知道如何正确地做到这一点。所以我尝试做这样的: 字节[]选项卡=新的字节[] {2,0,0,0,3,0, 3,0} - 2 INT32(四个字节),另外两个3 INT16(两个字节) 这工作得很好,但是当我想添加一些单值,它会产生错误。我不能做这样
..
我公司拥有一批浮法X 这应该是上述范围内,但经过几个数值运算 - 结果可能会稍微外℃下, 1>。 我需要使用 UINT是> UInt32的。当然,我需要用镊子 X 在的范围和规模。 不过,哪些操作的顺序是更好的? Y =(UINT)轮(分(MAX(X,0.0F),1.0F )* UInt32.MaxValue) 或 Y =(UI
..
什么是可以被表示为双(相邻的)整数精确范围(相应浮动?)我想问的原因是因为我很好奇的的问题,比如这个时候会发生精度降低。 这是 什么是最小正整数 M ,使得 M + 1 不能准确地表示为双(相应浮动)? 什么是最大的负整数 -n ,使得 -n-1 不能准确地表示为双(相应浮动)? (可能是与上述相同)。 这意味着,之间的每个整数 -n 和 M 有一个确切的浮点表示。基本上,我在
..
说我有一个浮动X.我想找到小于X和可无损地保存在一个浮动的最大数字。 IIRC IEEE标准说,你可以通过转换浮动的位为int表示,减去1做到这一点,并将其转换回浮动。 (编辑:的,这是对不NaN或INF正数真正为负数,您必须添加见的 Rawling的回答获取更多信息。) 要表示之间改变,我只知道C#的(投)运算符,这截断。这不是我想要的。 有没有办法做到这一点在C#?
..
我能想到的几种方法,如: Convert.ToInt32(浮点) - 浮点== 0; Math.Truncate(浮点) - 浮点== 0; 浮点%1 == 0; Math.Floor(浮点)==浮点; //等等...... 但是哪种方法最可靠? 解决方案 您不应该检查精确的平等到零,作为一个浮点数通常只包含最接近的可能近似您分配给数吧。
..
有没有检查一个64位浮点数可转换成32位的一个没有被转换为+/-无穷? 我的标准方式知道这事后能为+/-天道酬勤进行检查。 Convert.ToSingle()将无法做到这一点 解决方案 为了测试是否双击值 D 将转换成浮动不产生无穷,您可以测试是否 D 的绝对值严格低于双击写成 3.4028235677973366e + 38 (即 0x1.ffffffp + 127 十六进
..
即时通讯目前阅读代码完成由史蒂夫·麦康奈尔,特别是295页的浮点数 当我跑到下面的代码: 双名义= 1.0; 双总和= 0.0; 的for(int i = 0;我小于10;我++) { +总和= 0.1; Console.WriteLine(“总和:”+ sum.ToString()); } 如果(等于(标称,总和)) { Console.WriteLine
..
虽然“大家都知道” X ==是可能会有问题,其中 X 和是的浮点值,这个问题是一个比较具体的: INT点¯x = random.Next(SOME_UPPER_LIMIT); 浮动R = X; //是企业始终以下是真的吗? R ==点¯x 现在,因为范围的浮动的比整数更大(但精度不够唯一在边缘目前整数),它将如果对这个问题回答的也的讨论的哪些值是不错X 上面可以保证
..
我问一个关于此类问题之前,但在这里一个试。 我已经创建了一个复杂的类: 公共类复合 { 公共双实{搞定;组; } 公共双虚{搞定;组; } } 和我实施等于和 Hashcode方法的功能,并在账户平等的功能需要一定的精度。我用下面的逻辑是: 公共覆盖布尔等于(obj对象) { / /有些默认为空checkint等在这里,下一个代码是最重要的。 返回
..
我已经在我的脑海这个问题最后的几天了,我挣扎短语我的问题。不过,我想我已经钉我想知道什么。 为什么C#接受使用浮点来存储数据不准确?这有什么用它优于其他方法的好处? 例如, Math.Pow(的Math.sqrt(2) 2)不是在c#苛求。有编程语言,可以精确地计算出它(例如,数学)。 我能想到的一个说法是,它的计算究竟是慢了许多,然后只是不准确应对,但数学和放大器; Matla
..
这是一个后续到这个问题:的为什么一个除法结果差异而有所不同投式 快速总结: 字节B1 =(字节)(64 / 0.8f); // b1为79 INT B2 =(INT)(64 / 0.8f); // B2为79 浮动FL =(64 / 0.8f); // FL 80 现在的问题是:为什么结果不同,这取决于演员的类型?虽然工作了一个答案我遇到了一个问题,我无法解释。
..
我正在写的扩展方法,使用小数点(显著数字)的一组数字,以确定它们是否相等,而不是一个公差或百分比差异来比较两个浮动。翻翻有关浮动比较,我看到复杂的实现的其他问题。 ?有我过于简单,或者这是有效的。 ///<总结> ///确定是否浮点值是根据所定义的精度等于(==)的浮点参数。 ///< /总结> ///&下; PARAM NAME =“float1”>将float1
..
此代码(C#3) 双D; 如果(D ==(双)(INT)D)...; 有没有更好的方式来做到这一点? 对于外来的原因,我想避免双投这样;有什么好的办法比这还存在着其他? (即使它们没有那么好) 的注:的几个人指出(重要)点==往往是有问题的改编浮点。在这种情况下,我希望在0范围的值几百,他们都应该是整数(非整数的错误),所以如果这些点“不应该”对
..
请问铸造双击到浮动总是产生相同的结果,还是能有一些“整差异” 例如,为 X 在 浮动X =(浮点)0.123456789d; 总是相同的价值呢? 什么有关转换时,浮子双,然后铸造它回到浮动IE浏览器。 (浮点)(双)someFloat ? 在什么结果在C#中最感兴趣,但随时份额如果您对如何与其他的语言知识。 解决方案 结果不应该依赖于语言的
..
我运行NUnit的测试,以评估一些已知的测试数据和计算结果。这些数字是浮点双打,所以我不希望他们是完全相等的,但我不知道如何将它们视为等同于一个给定的精度。 在NUnit的,我们可以用一个固定的容差比较: 双预期= 0.389842845321551d; 双实际= 0.38984284532155145d; //真的来自数据导入 期待(实际,EqualTo(预期).Within(0.
..
我不知道是否说明一个堆栈溢出问题的这种非标准的方式是好还是坏,但这里有云: 什么是最好的(数学或否则技术)解释为什么代码: 静态无效的主要() { 十进制[] ARR = { 42米, 42.0米, 42.00米, 42.000米, 42.0000米, 42.00000米, 42.000000米, 42.0000000米, 42.00000000米, 42.000000000米,
..