Questions tagged «floating-point»

浮点数是实数的近似值,可以表示比整数大的范围,但使用相同的内存量,但代价是精度较低。如果您的问题是关于较小的算术错误(例如,为什么0.2 + 0.1等于0.300000001?)或十进制转换错误,请在发布前阅读下面链接的“信息”页面。


10
将浮点数转换为两倍而不损失精度
我有一个原始浮点数,需要作为原始双数。简单地将浮法转换为两倍会给我带来额外的精度。例如: float temp = 14009.35F; System.out.println(Float.toString(temp)); // Prints 14009.35 System.out.println(Double.toString((double)temp)); // Prints 14009.349609375 但是,如果我不是强制类型转换,而是将浮点数输出为字符串,然后将字符串解析为双精度,那么我得到的是: System.out.println(Double.toString(Double.parseDouble(Float.toString(temp)))); // Prints 14009.35 有没有比String返回更好的方法了?


8
JVM的JIT编译器是否生成使用矢量化浮点指令的代码?
可以说,我的Java程序的瓶颈实际上是一些紧密的循环,无法计算一堆矢量点积。是的,我已经进行了概要分析,是的,它是瓶颈,是的,它很重要,是的,这就是算法的方式,是的,我已经运行了Proguard来优化字节码,等等。 实质上,这是点产品。float[50]与之类似,我有两个,我需要计算成对乘积之和。我知道处理器指令集可以像SSE或MMX一样快速且批量地执行此类操作。 是的,我可能可以通过在JNI中编写一些本机代码来访问它们。JNI调用结果非常昂贵。 我知道您不能保证JIT将编译或不编译。有没有人曾经听说过使用这些指令的JIT生成的代码?如果是这样,那么有关Java代码的任何内容都可以使它以这种方式编译吗? 可能是“否”;值得一问。

6
0.0和1.0之间有多少个双数?
这是我多年来一直在想的事情,但是我从来没有花时间问过。 许多(伪)随机数生成器生成0.0到1.0之间的随机数。从数学上讲,此范围内有无限个数,但它double是一个浮点数,因此精度有限。 所以问题是: double0.0和1.0之间有多少个数字? 1和2之间的数字是否一样多?在100和101之间?在10 ^ 100和10 ^ 100 + 1之间? 注意:如果有所作为,我对Java的定义double特别感兴趣。

18
在python中轻松轻松地打印浮点数?
我有一个花车清单。如果我只是简单地print将其显示为: [9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006] 我可以使用print "%.2f",这将需要for循环遍历列表,但是对于更复杂的数据结构,它将不起作用。我想要类似的东西(我完全弥补了这一点) >>> import print_options >>> print_options.set_float_precision(2) >>> print [9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006] [9.0, 0.05, 0.03, 0.01, 0.06, 0.08]




2
是否允许这种浮点优化?
我试图检查哪里float失去了精确表示大整数的能力。所以我写了这个小片段: int main() { for (int i=0; ; i++) { if ((float)i!=i) { return i; } } } 该代码似乎适用于所有编译器,但不包括clang。Clang生成一个简单的无限循环。上帝保佑。 可以吗?如果是,那是QoI问题吗?



4
最接近1.0的双精度数是不是1.0?
有没有办法以编程方式获取最接近1.0的double,但实际上不是1.0? 一种可行的方法是将双精度数存为相同大小的整数,然后减去一个。IEEE754浮点格式的工作方式是,将小数部分从全零(1.000000000000)更改为全1(1.111111111111),最终将指数减小了一个。但是,有些机器将整数存储在低位在前,而浮点存储在大在前,因此这并不总是可行。

4
将浮点数转换为字符串而不舍入
我正在编写一个程序,出于不需要解释的原因,该程序要求将float转换为要用len()计算的字符串。但是,str(float(x))导致x在转换为字符串时被四舍五入,从而使整个过程丢掉。有人知道它的修复程序吗?如果您想知道以下代码,请使用以下代码: len(str(float(x)/3))

14
Swift-如果小数等于0,如何从浮点数中删除小数?
我正在显示一个带小数点的距离,如果它等于0(例如:1200.0Km),我想删除此小数点,如何迅速做到这一点?我正在显示此数字,如下所示: let distanceFloat: Float = (currentUser.distance! as NSString).floatValue distanceLabel.text = String(format: "%.1f", distanceFloat) + "Km"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.