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慢得多。
答案 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);