【问题标题】:Method for converting float to integer after checking检查后将浮点数转换为整数的方法
【发布时间】:2020-09-28 10:49:09
【问题描述】:

我正在尝试对两个数字(例如 A 和 B)执行多个操作。这两个数字是通过单个字符串输入的。所以我将它们转换为Double 值并对它们执行操作。

问题是输出总是double。如果结果是整数,例如2 而不是2.0,我希望得到整数答案。

案例:

  1. A= 2B= 2(输入字符串)=>提取成浮点变量=> varA= 2.0, varB=2.0 当前结果=> 4.0(简单*运算)最优结果=> 4

  2. A= 2.0B= 2.0(输入字符串)=>提取成浮点变量=> varA= 2.0, varB=2.0 当前结果=> 4.0(简单*运算)最优结果=> 4.0

我查了一下,没有多大帮助。因此,此类问题要么涉及转换,要么涉及精度。我可能错过的任何类似/有帮助的问题的链接也可以。我知道如何从float 转换为int,但正在寻找最佳 方法来检查一个数字是否可以用int 表示。并得到相应的结果。

谢谢

【问题讨论】:

  • 即使数学值是整数,用浮点数计算的结果也可能不是(由于舍入误差)。
  • @Henry 是的,我阅读了这些问题,以后可能会更改我的代码。这就是为什么我没有专注于运营商/运营部分,只是寻找我可以采取的转换路径。
  • 重点是,将浮点值转换为整数以使其看起来更漂亮是数学上不合理的。你不应该这样做。如果“老板”问你,你应该向他(或她)解释数学,以说服他漂亮的答案是错误的答案。
  • @StephenC 说的太对了哈哈。

标签: java


【解决方案1】:

您可以尝试使用 % 运算符来确定两个双精度数是否产生完美的除法,并使用如下整数转换。

double num1 = 20.0;
double num2 = 5.0;
    
if (num1%num2 == 0) {
    System.out.println((long) (num1/num2));
} else {
    System.out.println(num1/num2);
}

【讨论】:

    猜你喜欢
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    相关资源
    最近更新 更多