Tag:

在Javascript中处理float精度

我在javascript中有大量的数值y 。 我想通过将它们四舍五入到x的最接近的倍数并将结果转换为一个string。 我如何解决烦人的浮点精度? 例如: 0.2 + 0.4 = 0.6000000000000001 我已经尝试了两件事情: >>> y = 1.23456789 >>> x = 0.2 >>> parseInt(Math.round(Math.floor(y/x))) * x; 1.2000000000000002 和: >>> y = 1.23456789 >>> x = 0.2 >>> y – (y % x) 1.2000000000000002

如何在浮点运算和十进制中表示0.1

我正在尝试更好地理解浮点运算,并且看到了“每个计算机科学家应该知道什么是浮点运算”的几个链接。 我仍然不明白像0.1或0.5这样的数字是如何存储在浮点数和小数。 有人能解释一下,它是如何摆放的? 我知道浮球是两个部分(即一些东西的数量)。

如何parsing一个小数点的string为一个双?

我想parsing一个string像"3.5"到一个double。 然而, double.Parse("3.5") 收益35和 double.Parse("3.5", System.Globalization.NumberStyles.AllowDecimalPoint) 抛出一个FormatException 。 现在我的电脑的语言环境设置为德语,其中逗号用作小数点分隔符。 它可能需要做些什么和double.Parse()期待"3,5"作为input,但我不知道。 我怎样才能parsing一个string包含一个十进制数字,可能或不可能是我的当前区域设置中指定的格式?

什么时候应该使用双精度而不是小数?

我可以列举使用double (或float )而不是decimal三个优点: 使用较less的内存。 因为浮点math运算本来就是由处理器支持的,所以速度更快。 可以代表更大范围的数字。 但是,这些优势似乎只适用于计算密集型操作,如build模软件中的操作。 当然,如果需要精确度,例如财务计算,则不应使用双打。 那么在“正常”应用程序中是否有任何实际的理由selectdouble float (或float )而不是decimal ? 编辑补充说:感谢所有的好评,我从他们那里学到了。 还有一个问题:有些人认为双打可以更精确地代表实数。 当宣布的时候,我会认为他们通常会更准确地代表他们。 但是,当浮点运算被执行时,精确度是否会降低(有时甚至是显着的)呢?

除法结果始终为零

我得到了这个C代码。 #include <stdio.h> int main(void) { int n, d, i; double t=0, k; scanf("%d %d", &n, &d); t = (1/100) * d; k = n / 3; printf("%.2lf\t%.2lf\n", t, k); return 0; } 我想知道为什么我的variables“t”总是为零(在printf函数中)?

Java中的双十进制格式

我有一些格式化双精度小数的问题。 如果我有一个双重值,例如4.0,我如何格式化小数,所以它是4.00而不是?

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

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

如何使用Java没有科学记数法打印双重值?

我想打印一个没有指数forms的Java的double值。 double dexp = 12345678; System.out.println("dexp: "+dexp); 它显示了这个E符号: 1.2345678E7 。 我想要它像这样打印它: 12345678 防止这种情况的最好方法是什么?

十进制与双精度! – 我应该使用哪一个?

我不断看到人们在C#中使用双打。 我知道我读了一些双打有时会失去精度的地方。 我的问题是什么时候应该使用一个double,什么时候应该使用一个十进制types? 哪种types适合金钱计算? (即超过1亿美元)

在Java中保持双精度

public class doublePrecision { public static void main(String[] args) { double total = 0; total += 5.6; total += 5.8; System.out.println(total); } } 上面的代码打印: 11.399999999999 我怎样才能打印(或能够使用它)11.4?