据我了解,C++ 中的 long double 实际上利用了硬件架构(至少对于某些架构而言)。 Java 中的 BigDecimal 是否对足够小的输入执行此操作?
最佳答案
Does BigDecimal in Java do this for small enough inputs?
不,它不能。 float 是有损的,而每个 BigDecimal
都有一个关联的精度,并且可以精确表示低于该精度的任何数字。没有可以有用地呈现为 float 的“足够小的输入”,因为即使您碰巧有一个可以用浮点表示法精确表示的 BigDecimal
值,您很难对该值执行任何类型的操作并保持指定的精度。
换句话说,BigDecimal
的目的是在牺牲速度的同时提供精度。这与浮点完全相反,浮点牺牲精度以提高速度。
听起来你在问 Java 是否提供了一种方法来处理 long double
大小的 float ,以及 there is not .我们可以从事实中得出结论,这并不是说 JDK 作者从未觉得有必要添加到该语言中。
关于java - Java 的 BigDecimal 是否像 C++ 中的 long double 那样利用硬件架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39109613/