在进行进制转换的时候,我们需要把小数分为整数和小数两部分。
这里介绍两种方法。
-
第一种举个例子:1.23分为1 和 0.23
-
第二种:1.23 分为 1 和23
有时需要具体情况具体分析自己需要哪种类型。
第一种实现代码:
String e = "1.23";
double s = Double.valueOf(e);
int num1 = (int) s;
BigDecimal b1 = new BigDecimal(e);
BigDecimal b2 = new BigDecimal(num1);
double num2 = b1.subtract(b2).doubleValue();
System.out.println("整数为:"+num1);
System.out.println("小数为:"+num2);
第二种方法:
String e = "1.23"
String[] s1 = e.split("\\.")
System.out.println("整数为:"+s1[0])
System.out.println("小数为:"+s1[1])
是不是发现第二种方法比第一种简单呢?
两种方法在不同的场景使用不同,第一种是double,第二种是 String。
在进行进制转换的时候,我们需要把小数分为整数和小数两部分。 这里介绍两种方法。第一种举个例子:1.23分为1 和 0.23第二种:1.23 分为 1 和23 有时需要具体情况具体分析自己需要哪种类型。第一种实现代码: String e = "1.23"; double s = Double.valueOf(e); int num1 = (in
public class demo17 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.printf("请输入一个
小数
:");
double num1 = input.nextDo
整数
部分是:123
小数
部分是:45
1:使用
Java
的类型转换 double类型强制转换为int类型,直接舍去
小数
部分。在反过来用原数减去
整数
部分就可以得到
小数
部分。
2:使用String类型的split的方法。遇到
小数
点 “.”就进行分割。得到String类型的数组,包含
整数
部分和
小数
部分。
//主函数
public static void...
double int_part, frac_part;
frac_part = modf(num, &int_part);
printf("
整数
部分:%lf,
小数
部分:%lf\n", int_part, frac_part);
return ;
输出结果为:
整数
部分:3.000000,
小数
部分:.141593