将以元为单位的字符串 String 型价格转换为以分为单位的整数 int 值,Double 会丢失经度,用 BigDecimal 做转换。源码如下所示。
package *****.test;
import java.math.BigDecimal;
/**
* @description
* @date 2019/4/9 11:19
*/
public class Test {
public static void main(String[] args) {
String price = "5.09";
BigDecimal decimal = new BigDecimal(price);
BigDecimal res = decimal.multiply(new BigDecimal(100));
System.out.println(res);
int a = res.intValue();
System.out.println(a);
}
}
intValue() 方法只取整数,不做四舍五入,下表列举几种 price 值和转换来的 int 值。
price (String) | res (BigDecimal) | a (int) |
---|---|---|
5.01 | 501.00 | 501 |
5.05 | 505.00 | 505 |
5.09 | 509.00 | 509 |
5.091 | 509.100 | 509 |
5.095 | 509.500 | 509 |
5.099 | 509.900 | 509 |