输出数字,小数点后没有数字

时间:2015-03-18 05:49:10

标签: java android

ANDROID STUDIO帮助,VB.NET代码就是示例 - (已解决!!)

我来自VB.NET(2年以上)。

需要帮助输出双变量,小数点后没有数字。

我知道整数是小数点后没有任何数字的数字。

在Visual Basic或VB.NET中,我可以这样做..

 Dim Variable_Name_A as Decimal = 12.0123990110001
 Variable_To_Hold_It = Decimal.Truncate(Variable_Name_A)

 Outputs : 12

Val将String或TextBox视为Double。

那么我们如何在Java或Android Studio中实现这一目标呢?

另外,如果你可以回答另外一个问题。如何摆脱Android Studio中的否定符号..在VB.NET中我可以输入以下代码,以摆脱它。

 Dim My_Variable_Name_A as Double = -12.00017
 My_Variable_Name_B = Math.Abs(My_Variable_Name_A)

 Outputs : 12.00017

所以,我看过Android Studio的“Formater”。我读过无数的帖子,处理小数点后的数字。我不明白任何一个。

我不想转弯。

在VB.NET中,如果我想“格式化”一个数字,我们通常会做这样的事情。

Dim Variable_Name_A as Double = 13.00192012334
Variable_Name_B = format(Variable_Name_A, "0.000")
Output : 13.002

我只需要整数,在Android Studio的小数位之前,我不想要小数点后面的数字。

另外..如果你可以..没有ROUNDING ..你能告诉我如何格式化数字。是的,在小数位后面有X位数。

如果可以,请帮助解决我的第一个问题,并帮助我解决其他问题。

*所以我想出来了.. *

EditText Millimeters_VARa = (EditText) findViewById(R.id.Millimeters_EditText_ID);
Double MM_Double = Double.parseDouble(Millimeters_VARa.getText().toString());

EditText Inches_VARa = (EditText) findViewById(R.id.Inches_EditText_ID);

DecimalFormat WholeNumber = new DecimalFormat("0");
DecimalFormat WholeAndThousandths = new DecimalFormat("0.000");

// Converts Millimeters to Inches.
Double MM_to_Inches_Convert = (MM_Double / 25.4);

Inches_VAR.setText(WholeNumber.format(MM_to_Inches_Convert));
Output Example : 2

Inches_VAR.setText(WholeAndThousandths.format(MM_to_Inches_Convert));
Output Example : 2.000

所以,它似乎只有在最终输出值时才有效。

如何将格式化的数字或值存储在双变量中?

啊,我明白了。喜欢这个?

*将格式化的数字或值存储为双*

Double TheWholeNumber = Double.parseDouble(WholeNumber.format(MM_to_Inches_Convert.toString()));

NOPE !!不起作用..应用程序崩溃..只是保持简单,并在最终使用setText输出数字时格式化数字。

但当然它围绕最后一位数。所以,现在我要学习如何解决这个问题。

防止出现问题<已解决

public void FormatFunction(View v){
EditText EditText_VAR = (EditText) findViewById(R.id.EditText_A);
Double EditText_Double =     Double.parseDouble(EditText_VAR.getText().toString());
TextView TextView_VAR = (TextView) findViewById(R.id.TextView_A);

DecimalFormat LOL = new DecimalFormat("0.0000");
LOL.setRoundingMode(RoundingMode.DOWN);

TextView_VAR.setText(LOL.format(EditText_Double));

这就是你怎么做的。我现在也明白使用井号“#”和使用零号之间的区别。英镑符号可以防止尾随零。

Class Name,FormatFuncion由按钮Click。

调用
<TextView
android:textSize="22sp"
android:id="@+id/TextView_A"
android:text="@string/OUTPUT_STRING"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"/>

<EditText
android:layout_width="200dp"
android:layout_height="60dp"
android:layout_marginTop="90dp"
android:id="@+id/EditText_A"
android:inputType="numberDecimal"/>

<Button
android:layout_width="150dp"
android:layout_height="60dp"
android:layout_below="@+id/EditText_A"
android:layout_marginTop="20dp"
android:text="@string/Format_String_A"
android:onClick="FormatFunction"/>
</RelativeLayout>

你可以清楚地看到。

这篇文章可以帮助任何寻找答案的人格式化数字,以及如何防止舍入。解决。

Android编程有点困难。使用Visual Studio 2010在VB.NET中编程需要更长的时间。适用于Windows操作系统的应用程序。我可以,哈哈,纠正..“我有”已经在VB.NET中做了几次应用程序,并且它确实打败了程序化Android的鼻涕。至于为我的700美元+(Android)三星Galaxy Note 4制作应用程序所花费的时间。我只是讨厌.. Sorta ..键入我的布局。这很费时间。此外,为了使事情正确排列,例如在另一个按钮下,或在右边,左边等处制作按钮。如果你有多个其他对象,则必须说出像An Example : android:layout_toRightOf="@+id/EditText_A"

这样的内容

A **中的痛苦,恕我直言。但我喜欢Android的Coding。无论如何需要一些学习,并抓头。到目前为止,比VB.NET慢得多。

4 个答案:

答案 0 :(得分:1)

1)将Double转换为String。

2)执行String.Split
3)再将两个分开的部分连接成一个字符串
4)将字符串解析为Long   5)Wallah加倍没有小数

double dbNum=11112.1111;

    String []dbStore=Double.toString(dbNum).split(".");

    String strDBNum="";
    for(String str:dbStore)
    {
        strDBNum+=str;
    }

    Long lDbNum=Long.parseLong(strDBNum);

答案 1 :(得分:0)

试试这个

double number = 1205.6358;
System.out.println("number : " + number);
DecimalFormat df = new DecimalFormat("###");
System.out.println("number (DecimalFormat) : " + df.format(number));

答案 2 :(得分:0)

Java有一个很棒的小功能叫做强制转换。通过在它前面粘贴(int)将Double转换为int

Double Variable_Name_A = 12.0123990110001;
System.out.println((int)Variable_Name_A);

实际上发生的是Variable_Name_A正被转换为int,从而丢弃小数后的所有内容。您还可以使用以下内容将Variable_Name_A保留为double:

Double Variable_Name_A = 12.0123990110001;
Double Variable_Name_A = (int)12.0123990110001;
System.out.println(Variable_Name_A);

答案 3 :(得分:0)

1)有几种方法可以做到这一点。您可以使用DecimalFormat(找到文档here,也可以使用演员文稿(找到文档here)。

Casting告诉您的程序,您希望它将一种数据类型视为另一种数据类型。在您的情况下,您希望将double视为int,这将丢弃小数点以外的任何内容。

double My_Variable_Name_A = -12.9345;

int casted = (int) My_Variable_Name_A;

DecimalFormat是一个工具,可以准确指定您希望在输出中看到的内容,但输出String。它可以格式化各种各样的东西,最好查看它上面的文档。它可以与您可能想要使用的角色进行深入探讨。

    DecimalFormat dfMy_Variable_Name_A = new DecimalFormat("#");
    String newVariable = dfMy_Variable_Name_A.format(My_Variable_Name_A)

DecimalFormat("#")这是决定格式的部分。如果你想要“小数点后的X个位数”,你可以使用DecimalFormat("#.###") 3个位置。如果您想确保用逗号分隔大数字,可以使用DecimalFormat("#,###")等。

2)至于问题的后半部分,您可以导入Math并使用Java中的abs()方法来删除负号。 Math.abs(My_Variable_Name_A);