java - 将字符串转换为 float 而不进行四舍五入java

标签 java android

我想转换从数据库中以字符串形式获取的经度和纬度。该字符串是正确的,当我尝试将其转换为 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/

相关文章:

java - Java中最小的数组元素

Android - ListView 显示项目的不同布局

android - 在 web View 和 TextView 中使用 html 颜色标签分隔阿拉伯语字体

android - 用Cordova显示本地保存的图片

java - 如何在java中创建这个url

java - 从java文件中加载数据

android - addPreferencesFromResource 导致 ClassCastException

java - 根据条件将 RxJava Observer 添加到链中

java - 无法调用某些变量

java - 在 Android、iOS 构建过程中删除代码 fragment