我想转换从数据库中以字符串形式获取的经度和纬度。该字符串是正确的,当我尝试将其转换为 double 时,它也是正确的。但是,当我将 double 值或字符串值(我都尝试过)转换为浮点值时,最后一个小数会四舍五入。
字符串或 double 值的值为 59.858139 转换为 float 为 59.85814
我已经尝试了一切,这是一个令人绝望的例子:)
private float ConvertToFloat(double d)
{
float f = 00.000000f;
f = (float) d;
return f;
}
最佳答案
您知道 double 比 float 具有更高的精度,而且 float 会四舍五入,对吗?这是预期的行为。在这种情况下,将 double 型转换为 float 是没有意义的。
这里有一些东西可以让您朝着正确的方向思考......
Double.doubleToRawLongBits(long value);
Float.intBitsToFloat(int bits);
double 不能放入 int 中,而必须放入 long 中。它的大小确实是原来的两倍,即使用字符串来调解位在这里也没有任何作用。
关于java - 将字符串转换为 float 而不进行四舍五入java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11881291/