【问题标题】:Why does Double return the wrong data from my DB?为什么 Double 从我的数据库返回错误的数据?
【发布时间】:2020-05-09 19:14:47
【问题描述】:

我的数据库中有一个数字 2250.67

我是这样拿的

Double doubleBalance = (double) getBalance();

这就是它的输出2250.0

不应该输出2250.67

我可能做错了什么?

【问题讨论】:

    标签: android double decimal


    【解决方案1】:

    既然你说

    我的数据库中有一个数字 2250.67

    我假设所述 dB 字段的数据类型是 decimal

    在获取数据时检查您是否在应用程序代码中设置了正确的数据类型。

    【讨论】:

    • 数据库的数据类型是DOUBLE
    【解决方案2】:

    假设您使用 SQLite 来存储数据,必须注意它支持 here 中提到的数据类型。

    如果要存储和使用double值,可以使用以下方法

    public static Double stringToDouble (String x) {
        if (x !=null)
            return Double.parseDouble(x);
        return null;
    }
    
    public static String doubleToString (Double y) {
        if (y != null)
            return String.valueOf(y);
        return null;
    }
    

    doubleToString() 存储在数据库中时使用stringToDouble(),当您从数据库中获取它以在this answer 中提到的应用程序中使用时使用stringToDouble()

    【讨论】:

    • 我正在使用 MySQL 数据库,这仍然适用吗?
    • @Kennedy 如果您将它作为字符串存储在数据库中,它会这样做。但是,在数据类型的可用性方面,MySQL 已经很丰富了。所以我不建议这样做。另外,我对使用 MySQL 知之甚少,因此对您的情况无能为力。也许提供更多代码,例如getBalance() 方法以及如何将其存储在数据库中。在这种情况下,每个人都更容易提供帮助。
    • 我没有存入数据库,我是手动将这些数字输入到数据库中,数据类型为DOUBLE
    • @Kennedy 抱歉,我也不熟悉将 MySQL 与 JAVA 或 Android 一起使用。编辑您的帖子以添加更多相关代码。也许,我能帮上忙。
    猜你喜欢
    • 2014-08-08
    • 1970-01-01
    • 2020-08-28
    • 2023-02-07
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    相关资源
    最近更新 更多