gpt4 book ai didi

java - 输出数字,小数点后不带数字

转载 作者:行者123 更新时间:2023-12-01 11:46:05 25 4
gpt4 key购买 nike

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 的“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 小数点之前的整数,不需要小数点之后的数字。

另外..如果可以..无需四舍五入..您能否告诉我如何格式化数字。是的,小数点后有 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 变量中?

啊..我明白了。像这样吗?

* 将格式化数字或值存储为 double 型 *

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));

你就是这样做的。我现在也了解使用井号“#”与仅使用零之间的区别。井号可防止尾随零。

类名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 制作应用程序所需的时间。我只是讨厌......有点......打字我的布局。这很耗时。另外,为了使事物正确排列,例如在另一个按钮下制作一个按钮,或者在右侧、左侧等。如果您有多个其他对象,则必须说类似 An example : android:layout_toRightOf =“@+id/EditText_A”

恕我直言,只是一个痛苦**。但我喜欢 Android 编码。不管是否需要一些学习和挠头。到目前为止,只是比 VB.NET 慢得多。

最佳答案

1) 将 double 转换为字符串。

2)执行String.Split
3)将两个分割部分再次连接成一个字符串
4)将字符串解析为Long 5)Wallah double ,不带小数

double dbNum=11112.1111;

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

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

Long lDbNum=Long.parseLong(strDBNum);

关于java - 输出数字,小数点后不带数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29114966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com