如何从int获取浮点数

Koe*_*err 1 java math

我有一个int:

int f=1234;//or f=23 f=456 ...
Run Code Online (Sandbox Code Playgroud)

我想得到:

float result=0.1234; // or 0.23 0.456 ...
Run Code Online (Sandbox Code Playgroud)

不要使用:

float result = parseFloat ("0."+f);
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法?

谢谢

Mar*_*iot 10

怎么样?

float result = f/1000.0f;
Run Code Online (Sandbox Code Playgroud)

更一般地说,如果你需要为各种值的大小调整大小,f你可以这样做:

int divisor;
for(divisor = 1; f / divisor > 0; divisor *= 10);
float result = (float)f/(float)divisor;
Run Code Online (Sandbox Code Playgroud)

或者更简洁地使用对数:

float result = f / Math.pow(10, Math.floor(Math.log10(f))+1);
Run Code Online (Sandbox Code Playgroud)

  • @Zenofo:我确定差异可以忽略不计,对你有意义或最可读......即做最易维护的事情. (2认同)