只需仔细阅读文档,就可以找到这个奇怪的函数Math.scalb()。只是想知道是否有人有使用这个函数的经验。你会用Math.scalb做什么?
发布于 2014-12-01 11:31:16
函数java.lang.Math.scalb(float f,int scaleFactor)
,而不是如下所示(一次移位、一次转换和一次乘法):
double a = Integer.doubleValue(1 << scaleFactor);
f *= a;
或
double a = Math.pow(2, scaleFactor);
f *= a;
它使用的事实是,在表单中已经写入了一个“双”。
,参见例如point。因此,只需增加一项:
exponent += scaleFactor;
与正确处理角的案件明显,作为文件的细节。所以它用来做一个高效的f * 2 ^ scaleFactor
参考:根据http://www.ibm.com/developerworks/library/j-math2/#scalb
例如,在用苹果的Java6VM进行测试时,Math.scalb()比x*Math.pow(2,y)快两个数量级。
发布于 2019-07-30 12:38:38
它用于指数重试机制。
以下是Android框架中的一种用法:
// Retry after exponential backoff timeout
final long timeoutMs = (long) Math.scalb(BACKOFF_MILLIS, mConnectionBackoffAttempts);
mHandler.postDelayed(mConnectionRunnable, timeoutMs);
mConnectionBackoffAttempts++;
发布于 2014-12-01 04:05:04
java.lang.Math.scalb(float,int scaleFactor)返回fx2Scalefactor四舍五入,就好像由一个正确的四舍五入浮点乘数执行到双值集的一个成员一样。有关详细信息,请参阅以下内容:float.htm
https://stackoverflow.com/questions/27221512
复制相似问题