【问题标题】:Extract the value from number after dot in java [duplicate]从java中点后的数字中提取值[重复]
【发布时间】:2017-06-25 20:20:57
【问题描述】:
int number = 24.24;

int afterDot = (int) (number*100)%100;
afterDot = 24

这个逻辑是错误的,如果

int number1 = 24.4 

如何从 24.4 获得 4?
不管数字是什么,但想在点之后提取值。 实际上,该公式必须适用于两种类型的值。

【问题讨论】:

  • 点后数字的的值是多少?是24吗? 240? 2400?等
  • int number = 24.24 无法编译。文字 24.24double 并且必须/应该分配给 double 类型变量。
  • 首先使用双精度,因为 int 不会接受 .24
  • 1.001 的结果应该是什么?

标签: java int


【解决方案1】:

如果您将double 转换为字符串,问题会变得更容易:

double number = 24.4;
String numberAsString = String.valueOf(number);
String decimalPart = numberAsString.split("\\.")[1];
System.out.println(decimalPart);
int number1 = Integer.valueOf(decimalPart); // NOTE: This conversion is lossy.
System.out.println(number1);

请注意,将decimalPart 字符串(例如“001”)转换为整数(1)可能会丢失一些信息。

使用24.4,它会输出:

4
4

使用24.001,它会输出:

001
1

使用3d,它会输出:

0
0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2017-06-09
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    相关资源
    最近更新 更多