当我尝试使用BigDecimal()将字符串转换为BigDecimal时,对于像'45e57'这样的字符串转换为4.5E + 57。当字符串包含'e'时,将字符串转换为BigDecimal Java
//假设“文本”是一个输入
BigDecimal textToBigDecimal = null;
try
{
if (!textToBigDecimal.contains("e") && !textToBigDecimal.contains("E"))
{
textToBigDecimal = new BigDecimal(text);
}
}
catch (NumberFormatException ignored)
{
}
截至如果“文本”包含“E”现在我抛出错误。我想知道是否有解决方法跳过检查。如果转换不应该发生的字符串中存在任何其他字符,则只需要将字符串转换为数字。
我不明白,这是什么问题?你能分享你的代码和你得到的所有异常的完整堆栈跟踪吗? – BackSlash
目前还不清楚你在问什么 - 特别是,“但我不会抛出异常”,你的意思是*你想*抛出一个异常,或者你想抛出一个异常*而不是*抛出异常。 [mcve]会让你更容易帮助你。 –
'新的BigDecimal(“45e57”)'将转换为'4.5E + 58'这是正确的!你想防止什么?要实现什么? – Harmlezz