将四舍五入到更少的数字加速计算
will round to less digits accelerate computing
我正在编写一个 Java 程序,该程序涉及双倍分数的重要计算。现在很慢。
如果我舍入到更少的数字,比如 0.54583574982374592 到 0.5458。这会加速我的程序吗?
简答:否
double
没有会影响其操作速度的可变精度。
不是十进制。小数点后的小数位数是数字 "complexity" 的一个非常糟糕的指标。例如 0.1 是二进制的无限分数,设置了很多位。二进制舍入有一些影响,但仅对除法和平方根(source 和个人实验)有影响 - 常见操作(加法、乘法、比较)不以这种方式依赖于操作数的值(次正规通常很慢,具体取决于操作和 µarch)。
我正在编写一个 Java 程序,该程序涉及双倍分数的重要计算。现在很慢。
如果我舍入到更少的数字,比如 0.54583574982374592 到 0.5458。这会加速我的程序吗?
简答:否
double
没有会影响其操作速度的可变精度。
不是十进制。小数点后的小数位数是数字 "complexity" 的一个非常糟糕的指标。例如 0.1 是二进制的无限分数,设置了很多位。二进制舍入有一些影响,但仅对除法和平方根(source 和个人实验)有影响 - 常见操作(加法、乘法、比较)不以这种方式依赖于操作数的值(次正规通常很慢,具体取决于操作和 µarch)。