ANDROID STUDIO帮助,VB.NET代码是示例-(已解决!)
我来自VB.NET(2年以上)。
需要帮助输出Double变量,小数点后没有数字。
我知道整数是指小数点后没有任何数字的数字。
在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的"格式化程序"。我读过无数关于小数点后数字的帖子。我一点也不懂。
我不想四舍五入。
在VB.NET中,如果我想"格式化"一个数字,我们通常会这样做。。
Dim Variable_Name_A as Double = 13.00192012334
Variable_Name_B = format(Variable_Name_A, "0.000")
Output : 13.002
我只需要整个数字,在安卓工作室的小数点之前,我不想要小数点之后的数字。
此外。。如果可以的话。。不取整。。你能告诉我如何格式化这个号码吗。是的,小数点后有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()));
不!!不起作用。。应用程序崩溃。。只是保持简单,并在最后用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));
Voilà
你就是这么做的。我现在也明白了使用磅符号"#"和只使用零之间的区别。英镑符号防止尾随零。
类名FormatFuncion是通过单击按钮调用的。
<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>
你可以清楚地看到。
这篇文章应该可以帮助任何寻找数字格式答案的人,以及如何防止四舍五入。解决。
安卓编程有点困难。与使用Visual Studio 2010在VB.NET中编程相比,它需要更长的时间。适用于Windows操作系统的应用程序。我可以,哈哈,更正。。"我已经"在VB.NET中制作了几次应用程序,它肯定比安卓编程要好得多。就为我700多美元(安卓系统)的三星Galaxy Note 4制作应用程序所需的时间而言。我只是讨厌。。排序。。键入我的布局。这很耗时。此外,为了让事情正确排列,比如在另一个按钮下面、右边、左边等处制作按钮。如果你有多个其他对象,必须说An Example : android:layout_toRightOf="@+id/EditText_A"
之类的东西
只是一种痛苦,IMHO。但我喜欢Android的编码。不管它是否需要一些学习和挠头。到目前为止,只比VB.NET慢得多。
1)将Double转换为String。
2) 执行字符串拆分
3) 将两个分开的部分重新连接成字符串
4) 将字符串解析为长5) 瓦拉双精度无小数
double dbNum=11112.1111;
String []dbStore=Double.toString(dbNum).split(".");
String strDBNum="";
for(String str:dbStore)
{
strDBNum+=str;
}
Long lDbNum=Long.parseLong(strDBNum);
试试这个
double number = 1205.6358;
System.out.println("number : " + number);
DecimalFormat df = new DecimalFormat("###");
System.out.println("number (DecimalFormat) : " + df.format(number));
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 Variable_Name_A = 12.0123990110001;
Double Variable_Name_A = (int)12.0123990110001;
System.out.println(Variable_Name_A);
1)有几种方法可以做到这一点。您可以使用DecimalFormat
(在此处找到文档),也可以使用Cast(在此处发现文档)。
强制转换是告诉你的程序你希望它将一种数据类型视为另一种。在您的情况下,您希望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);