Java的BigDecimal是否利用C++中的long double等硬件架构?

Dai*_*san 4 java floating-point precision bigdecimal long-double

据我所知,C++中的长双重实际上利用了硬件架构(至少对于某些架构而言).Java中的BigDecimal是否为足够小的输入执行此操作?

dim*_*414 5

Java中的BigDecimal是否为足够小的输入执行此操作?

不,它不可能.浮点数是有损的,而每个BigDecimal都有相关的精度,并且可以表示低于该精度的任何数字.没有"足够小的输入"可以有效地呈现为浮点数,因为即使您碰巧有一个BigDecimal可以用浮点表示法精确表示的值,您也很难做任何排序对该值的操作并保持指定的精度.

换一种方式,目的BigDecimal是提供精准而牺牲速度.这与浮点完全相反,后者牺牲了速度的精度.


听起来你问的是Java是否提供了一种处理long double大小浮点数的方法,而没有.我们可以从这样的事实得出结论:没有提供JDK作者从未认为有必要添加到该语言.