rounding-error

    9热度

    4回答

    我在基于UNIX的系统上遇到问题,sprintf没有正确收集值。 例如 double tmp = 88888888888885.875 char out[512]; 那88,888,888,888,885.875只是为了眼睛更容易。 我给出了这样一个特定的大例子,因为它似乎在较小的数字上工作正常。 我想在下面的方式 sprintf(out, "%021.2f", tmp); printf(

    4热度

    1回答

    我们目前使用System.Decimals来表示我们正在开发的.NET应用程序中的数字。我知道小数的设计是为了尽量减少由于四舍五入造成的误差,但我也知道某些数字(例如1/3)不能用小数表示,因此一些计算会有小的舍入误差。我相信这个错误的严重程度将非常小,但是一位同事不同意。因此,我希望能够估计由于我们的应用程序中的舍入而导致的错误的数量级。举例来说,我们正在计算一个“交易”的总数,并且每天将执行大

    0热度

    1回答

    考虑避免四舍五入, object a =1.123456; float f = convert.ToSingle(a); 但是当我打印f的值,我得到1.123455。 它变得四舍五入。 此外问题是我不能改变代码中的浮点数据类型。 请帮忙。

    6热度

    4回答

    我在写一段代码,我必须将其从双精度值转换为浮点值。我正在使用boost :: numeric_cast来执行此转换,它会提醒我任何溢出/下溢。不过,我也有兴趣知道这种转换是否会导致某些精度损失。 例如 double source = 1988.1012; float dest = numeric_cast<float>(source); 主要生产DEST拥有价值1988.1 是否有任

    0热度

    2回答

    可能重复: Dealing with accuracy problems in floating-point numbers 而99.99 * 0.01 = 0.99 显然,这是古老的浮点舍入的问题,但是在这种情况下,舍入误差对我来说似乎相当大;我的意思是我可能预期结果为0.99990000001或类似的“接近”结果。 为了记录,我在JavaVM和.Net环境中得到了相同的答案。

    2热度

    2回答

    我正在尝试使用vb.net来平衡一组货币值。这两个值的总数都是双倍数。在某些情况下,我会发生四舍五入错误。 避免这种情况的最好方法是什么?有没有我可以使用的类型优先翻倍?如何将结果值舍入到小数点后两位? 这是我的代码 - 我可能不需要显示它,但以防万一。 Dim nInvValue As Double Dim nCreditValue As Double For Each o

    11热度

    5回答

    因为PHP中的float数据类型不准确,而且MySQL中的FLOAT占用的空间比INT多(且不准确),所以我总是将价格作为INTs存储,在存储之前将其存储为100,以确保我们有精确的2位小数的精度。不过我相信PHP是行为不端的。示例代码: echo "<pre>"; $price = "1.15"; echo "Price = "; var_dump($price); $price_c

    2热度

    11回答

    我试图在C++中表示一组简单的3个概率。例如: a = 0.1 b = 0.2 c = 0.7 (据我所知概率加起来必须等于1) 我的问题是,当我试图代表用C 0.7 ++为float我结束了0.69999999,从而赢得当我稍后做我的计算时没有帮助。 0.8,0.80000001一样。 在C++中有更好的表示0.0到1.0之间数字的方法吗? 请记住,这涉及如何将数字存储在内存中,以便在对

    3热度

    2回答

    我试图转换一些decimals到varchar,但他们得到四舍五入。 有人能告诉我为什么吗? declare @UpperLeftLatitude DECIMAL, @UpperLeftLongitude DECIMAL, @BottomRightLatitude DECIMAL, @BottomRightLongitude DECIMAL SET @UpperL

    3热度

    3回答

    我想在特定的计算机上找到尾数位数和单位舍入数。我了解这些是什么,只是不知道如何找到它们 - 尽管我知道它们可以因计算机而异。 我需要这个数字来执行数值分析的某些方面,比如分析错误。 我目前的想法是我可以编写一个小的C++程序来缓慢增加一个数字,直到发生溢出,但我不确定使用什么类型的数字。 我在正确的轨道上吗?一个人究竟如何计算这个?