【问题标题】:Convert decimal to whole number in java [duplicate]在java中将十进制转换为整数[重复]
【发布时间】:2019-09-13 20:54:00
【问题描述】:

我需要将整数和十进制值分开。将两个值都表示为整数。

例如,1.24 会输出:

整数:1 十进制:24

【问题讨论】:

  • 您如何获得要转换的值?输入实际上是 doubleString 还是您必须阅读用户输入,还是什么?

标签: java data-conversion


【解决方案1】:

假设您的输入是字符串。您可以只使用 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

【讨论】:

  • @MarcusJones 这个答案对你有用吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2012-03-08
  • 2010-10-16
  • 2016-03-09
  • 2015-04-30
相关资源
最近更新 更多