我有一个 java 字符串,它具有小数点后的美元值和美分值,并以 + 或 - 符号开头。我想转换成美分并将其存储在一个整数中(它可以有 + 或 -)。我还需要检查美分部分(小数点后)是否不超过 2 位数字,如果存在则抛出错误消息
例子: String dollval="12.23"输出值=1223美分
String dollval= "12"输出值 = 1200 美分
String dollval= "-0.09"输出值 = -9 美分
String dollval= ""-99"输出值= -99美分
String dollval= "-99.0"输出值= -99美分
String dollval="-99.23"输出值=-9923美分
String dollval="0.00 "输出值=0 美分
String dollval="5.2"输出值= 520 美分
String dollval = "5.20"输出值=520美分
最佳答案
我绝对不会用正则表达式来做这件事,因为这会导致不必要的复杂和容易出错的代码。 Java 标准 API 提供了一个非常简单的解决方案:
BigDecimal dollars = new BigDecimal(inputString);
if(dollars.scale()>2)
{
throw new IllegalArgumentException();
}
int cents = dollars.multiply(new BigDecimal(100)).intValue();
请注意,尽管您的上述要求不一致:
String dollval= "12" output value = 1200 cents
String dollval= ""-99" output value = -99 cents
我的代码假设这是一个错误,你的意思是没有小数部分的数字被解释为正数和负数的完整美元。
关于java - 关于 Java String 美元到美分的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2406881/