【发布时间】:2019-09-13 20:54:00
【问题描述】:
我需要将整数和十进制值分开。将两个值都表示为整数。
例如,1.24 会输出:
整数:1 十进制:24
【问题讨论】:
-
您如何获得要转换的值?输入实际上是
double或String还是您必须阅读用户输入,还是什么?
标签: java data-conversion
我需要将整数和十进制值分开。将两个值都表示为整数。
例如,1.24 会输出:
整数:1 十进制:24
【问题讨论】:
double 或 String 还是您必须阅读用户输入,还是什么?
标签: java data-conversion
假设您的输入是字符串。您可以只使用 split 并将小数部分和整个部分分开。虽然要注意浮点精度误差。
见:Is floating point math broken?
如果您想非常精确。请改用BigDecimal。
String decimalString = "46.88999999999999";
String[] decimalSplit = decimalString.split("\\.");
System.out.println("Decimal Number: " + decimalString);
System.out.println("Whole Number: " + decimalSplit[0]);
System.out.println("Decimal Part: " + decimalSplit[1]);
int wholePart = Integer.parseInt(decimalSplit[0]);
double decimalPart = Double.parseDouble("." + decimalSplit[1]);
System.out.println("\nWhole Part: " + wholePart);
System.out.println("Decimal Part: " + decimalPart);
输出:
Decimal Number: 46.88999999999999
Whole Number: 46
Decimal Part: 88999999999999
Whole Part: 46
Decimal Part: 0.88999999999999
【讨论】: