这是我在这个论坛上提出的第一个问题,所以如果问题是新手请指教。
我通过 接收用户输入EditText
,因此它是一个字符序列/字符串。然后我创建BigDecimal
以保持该值。它也可以优雅地处理指数,没有任何麻烦。但问题是当用户输入诸如1.1E+
(没有任何尾随指数值)之类的值时,这段代码中的代码会崩溃。但是当输入是这样的时候它可以工作1.1E+2
EditText edit_text_left;
Editable editable_val_text;
....
editable_val_text = edit_text_left.getText();
BigDecimal val = new BigDecimal((editable_val_text.toString().trim())); // crash happens here
如何处理?
更多信息:您可以在谷歌单位转换应用程序中尝试此操作,方法是选择数字存储:PB 到比特转换。并以 PB 为单位键入 9,它将显示8.106e+16
在位部分中。现在尝试编辑8.106e+16
,8.106e+
它仍然可以工作。我只想要类似的处理。