java - 关于 Java String 美元到美分的转换

标签 java string

我有一个 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/

相关文章:

C 简单数组代码不起作用

java - 将字符数组与字符串匹配的函数

arrays - 将字符串值添加到 Numpy 数组 Python 中每个值的末尾

java - java中如何逐字符反转字符串?

java - 使用 odata4j 的 Bing 搜索 API 错误

c# - 删除一个字前的一点字符串

java - 将字符串拆分为指定长度的 block (最后一个除外)

java - 不能用 UTF-8 表示的字符串

java - 当2个tomcat在不同的机器上时,如何在tomcat中实现负载均衡器?

java web 应用程序无法在 glassfish v3 上创建日志文件(使用 log4j)