Tag: 浮点

最大的整数,可以存储在一个双

什么是最大的“无浮动”整数,可以存储在一个IEEE 754双精度型而不失精度?

为什么C#中的浮点运算不精确?

为什么下面的程序打印什么打印? class Program { static void Main(string[] args) { float f1 = 0.09f*100f; float f2 = 0.09f*99.999999f; Console.WriteLine(f1 > f2); } } 输出是 false

大量错误地在Javascript中舍入

看到这个代码: <html> <head> <script src="http://www.json.org/json2.js" type="text/javascript"></script> <script type="text/javascript"> var jsonString = '{"id":714341252076979033,"type":"FUZZY"}'; var jsonParsed = JSON.parse(jsonString); console.log(jsonString, jsonParsed); </script> </head> <body> </body> </html> 当我在Firefox 3.5中看到我的控制台时,jsonParsed的值是: Object id=714341252076979100 type=FUZZY 即数字四舍五入。 尝试不同的价值观,相同的结果(数字四舍五入)。 我也没有得到它的舍入规则。 714341252076979136四舍五入为714341252076979200,而714341252076979135四舍五入为714341252076979100。 编辑:请参阅下面的第一条评论。 显然这不是关于JSON,而是关于Javascript数字处理。 但问题依然存在: 为什么发生这种情况?

格式编号始终显示2位小数

我想格式化我的数字始终显示2位小数,四舍五入适用。 例子: number display —— ——- 1 1.00 1.341 1.34 1.345 1.35 我一直在使用这个: parseFloat(num).toFixed(2); 但它显示1为1 ,而不是1.00 。

如何很好地格式化浮动数字string没有不必要的十进制0?

一个64位的double可以精确地表示整数+/- 2 53 鉴于这个事实,我select使用双types作为我所有types的单一types,因为我最大的整数是无符号的32位。 但现在我必须打印这些伪整数,但问题是他们也混入了实际的双打。 那么如何在Java中很好地打印这些双打呢? 我试过String.format("%f", value) ,这是接近的,除了我得到很多小值的尾随零。 以下是%f输出示例 232.00000000 0.18000000000 1237875192.0 4.5800000000 0.00000000 1.23450000 我想要的是: 232 0.18 1237875192 4.58 0 1.2345 当然,我可以写一个函数来修剪这些零,但是由于string操作,性能会有很大的损失。 我可以用另一个格式代码更好吗? 编辑 Tom E.和Jeremy S.的答案是无法接受的,因为它们都是任意取整到小数点后两位。 请在回答之前了解问题。 编辑2 请注意, String.format(format, args…)是语言环境相关的 (请参阅下面的答案)。

为什么我会看到一个双variables初始化为21.4,如21.399999618530273?

double r = 11.631; double theta = 21.4; 在debugging器中,这些显示为11.631000000000000和21.399999618530273 。 我怎样才能避免这一点?

IEEE754 NaN值返回false的所有比较的基本原理是什么?

为什么比较NaN值的行为与所有其他值不同? 也就是说,所有与运算符==,<=,> =,<,>的比较,其中一个或两个值是NaN的返回值都是false,与所有其他值的行为相反。 我认为这在某种程度上简化了数值计算,但是我找不到一个明确的原因,即使在Kahan的关于IEEE 754地位的讲稿中也没有详细讨论其他的devise决定。 这种不正常的行为在做简单的数据处理时会造成麻烦。 例如,当对C程序中的某些实值字段进行sorting时,我需要编写额外的代码来处理NaN作为最大元素,否则sortingalgorithm可能会变得混乱。 编辑:到目前为止的答案都认为比较NaN是没有意义的。 我同意,但这并不意味着正确的答案是错误的,而是一个非布尔(NaB),幸运的是它不存在。 所以在我看来,对于比较的select是真实的还是错误的,对于一般的数据处理来说,如果服从通常的规律(==的reflection性,<,==,>的三分法),将是有利的,以免数据结构依靠这些法律变得混乱。 所以我要求打破这些规律的一些具体优势,而不仅仅是哲学推理。 编辑2:我想现在我明白了为什么制作NaN最大是一个坏主意,它会搞乱上限的计算。 NaN!= NaN可能需要避免检测循环中的收敛,如 while (x != oldX) { oldX = x; x = better_approximation(x); } 然而,最好通过比较绝对差异和小的限制来写出。 所以恕我直言,这是一个相对较弱的NaN打破反身性的论据。

PHP的浮动数字精度

$a = '35'; $b = '-34.99'; echo ($a + $b); 结果为0.009999999999998 这是怎么回事? 我想知道为什么我的程序不断报告奇怪的结果。 为什么PHP不会返回预期的0.01?

如何使用cout以完全精度打印双精度值?

所以我已经得到了最后一个问题的答案(我不知道为什么我没有想到这一点)。 我正在用cout打印一个double ,当我不期待的时候。 我怎样才能让cout使用全精度打印double精度?

将stringparsing为Float或Int

在Python中,我怎样才能parsing一个数字string像"545.2222"到它相应的浮点值542.2222 ? 或者将string"31"parsing为一个整数31 ? 我只想知道如何将一个浮点 stringparsing为一个float ,然后(单独)将一个int stringparsing为一个int 。