【问题标题】:Decimal numbers cutting小数切割
【发布时间】:2012-03-10 17:09:15
【问题描述】:

我在 EditText 行中放了一个数字,它在另一个中计算一个 double 值。 但是 4.8 的双精度值应该是 9.6 而不是 9.6000000381469727。 我知道浮点数是正常的,但我想将十进制数字的数量减少到 4。我不确定如何在我的代码中执行此操作。

private void calc(double number, operation input) {
        double a = 0;
        switch (input) {
        case a:
            valuedouble.setText(valuecount(number));

private String valueucount(double input) {
        return Double.toString( input*2 );
    }

感谢回复。

【问题讨论】:

    标签: string floating-point numbers decimal cut


    【解决方案1】:

    您可以使用以下命令(格式字符串)

    String.format("%.4f", number);
    

    有关格式字符串的完整列表,请参阅 this site

    【讨论】:

    • 这在 iOS 中不可用吗?我正在为 Android 编程。
    • 对不起,这有点超出范围,但我只是更改了示例,因为格式字符串也将适用于 android。
    • 我试过这样:codeprivate void calc(double number, operation input) { double a = 0; switch (input) { case a: valuedouble.setText(String.format("%.4f",valuecount(number)));code虽然我在 Eclipse 中没有遇到任何错误,但它在应用程序中不起作用- 它不算数,甚至在其他editTexts中也不算数
    • 格式化字符串意味着你将传递一个双精度参数,它应该被格式化为一个最多4个十进制数字的字符串。在您的代码中,valuecount 方法应该返回一个双精度值,或者 valuecount 中的 Doubel.toString... 调用应该替换为 String.format... 行。
    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多