Java将带小数点的数字字符串转化为BigDecimal类型
时间: 2023-08-28 09:07:51 浏览: 49
可以使用BigDecimal类的构造方法将带小数点的数字字符串转化为BigDecimal类型,如下所示:
```
String str = "3.14159265358979323846";
BigDecimal bigDecimal = new BigDecimal(str);
```
其中,参数str为待转化的字符串。注意,BigDecimal类的构造方法可以接受任何类型的数字字符串作为参数,包括科学计数法表示的数字字符串。另外,如果要指定BigDecimal类型的精度和舍入方式,可以使用BigDecimal类的setScale()方法。
相关问题
Java将带小数点的数字字符串转化为Long类型
无法直接将带小数点的数字字符串转化为Long类型,因为Long类型只能表示整数。如果需要将带小数点的数字字符串转化为整数类型,可以使用以下方法:
1.使用Double类型进行转换,然后强制转换为Long类型。
例如:
```
String str = "123.45";
double d = Double.parseDouble(str);
long l = (long) d;
```
2.先将字符串转化为BigDecimal类型,然后再将BigDecimal类型转化为Long类型。
例如:
```
String str = "123.45";
BigDecimal bd = new BigDecimal(str);
long l = bd.longValue();
```
需要注意的是,这两种方法都会丢失小数部分的数值,只保留整数部分的数值。如果需要保留小数部分的数值,可以考虑使用其他类型,如BigDecimal类型。
java 小数点字符串相减,不丢失精度
Java 中可以使用 BigDecimal 类来进行高精度的小数点运算,可以避免在浮点数运算中出现精度丢失的问题。具体实现可以采用以下步骤:
1. 将小数点字符串转换为 BigDecimal 对象。
2. 使用 BigDecimal 的 subtract 方法进行减法运算。
3. 使用 BigDecimal 的 setScale 方法设置小数点后面的位数。
4. 使用 BigDecimal 的 toString 方法将结果转换为字符串。
代码示例:
```java
import java.math.BigDecimal;
public class BigDecimalSubtraction {
public static String subFloatString(String str1, String str2, int scale) {
BigDecimal num1 = new BigDecimal(str1);
BigDecimal num2 = new BigDecimal(str2);
BigDecimal diff = num1.subtract(num2);
diff = diff.setScale(scale, BigDecimal.ROUND_HALF_UP);
return diff.toString();
}
public static void main(String[] args) {
String str1 = "123.456";
String str2 = "78.9";
String result = subFloatString(str1, str2, 3);
System.out.println(result);
}
}
```
这个程序会输出 "44.556",保证了精度不丢失。其中,setScale 方法的第二个参数表示舍入模式,ROUND_HALF_UP 表示四舍五入。