Android Studio - DecimalFormat (java.text) - 无法正常工作

Posted

技术标签:

【中文标题】Android Studio - DecimalFormat (java.text) - 无法正常工作【英文标题】:Android Studio - DecimalFormat (java.text) - Not working properly 【发布时间】:2020-11-13 08:20:45 【问题描述】:

所以,我有以下代码在 android Studio 4.0.1 中制作一个简单的温度应用转换器:

bt_converter.setOnClickListener(new View.OnClickListener() 
@Override
public void onClick(View v) 
    double tempC = Double.parseDouble(et_tempC.getText().toString());

    DecimalFormat arredondar = new DecimalFormat("#.##");
    double tempF = Double.parseDouble(arredondar.format(tempC * 1.8 + 32));

    tv_tempF.setText(String.valueOf(tempF));

问题是,当我运行应用程序时,由于以下语句而崩溃: DecimalFormat arredondar = new DecimalFormat("#.##"); 同样适用于: DecimalFormat arredondar = new DecimalFormat("0.00");

事实上,每个以“0”开头并涉及点“。”的模式都会崩溃。

我尝试将其切换为: DecimalFormat arredondar = new DecimalFormat("#,##");

它确实有效,但没有按预期显示两位小数,而且无论我输入什么 tempC 值,输出始终是某个数字点零 (xx.0)

例如: 对于tempC = 10.11111111 它显示tempF = 50.0 什么时候应该给我50.1950.2

我已经重新安装了应用程序并清理了项目,甚至更改了我的 Windows 10 区域设置(关于十进制符号),但它仍然保持不变。

但如果您需要更多详细信息,请告诉我。

【问题讨论】:

this 有帮助吗? 请:始终在您发布问题时复制/粘贴错误消息文本。建议:试试这种格式,发回发生了什么:"#,#00.0#" 嗨,安禅!我很感谢你的回答。不幸的是,它还没有起作用,因为无论我为 tempC 设置什么值,应用程序都会立即崩溃。代码中可能缺少某些内容或错误,因为它既不接受“0”也不接受“。”在 DecimalFormat 模式中。但我仍然愿意接受任何其他建议,非常感谢您的帮助! 【参考方案1】:

所以,我找到了一个解决方案,它按预期工作。 我只是更改了最后三行代码:

之前

DecimalFormat arredondar = new DecimalFormat("#.##");

double tempF = Double.parseDouble(arredondar.format(tempC * 1.8 + 32));
tv_tempF.setText(String.valueOf(tempF));

之后:

DecimalFormat arredondar = new DecimalFormat("0.00");
double tempF = tempC * 1.8 + 32;

tv_tempF.setText(arredondar.format(tempF));

显然有一些错误/不兼容之王。但是,我意识到我正在使用前面代码中的第二行将 tempF 从 String 转换为 Double,然后使用第三行将其再次转换回 String。

所以我只是将 tempF 直接以字符串格式放在输出中,在没有转换的情况下计算它:

            double tempF = tempC * 1.8 + 32;

            tv_tempF.setText(arredondar.format(tempF));

我已将模式从“#.##”更改为“0.00”,以确保每次都能得到两位小数。

【讨论】:

以上是关于Android Studio - DecimalFormat (java.text) - 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

android studio setting 在哪

如何解决android studio2.3导入android studio2.1的问题

Android studio上找不到setting?

android studio v4包冲突

如何用android studio 编成app

如何手动升级android studio?