【问题标题】:Java : Casting from Double to integerJava:从双精度转换为整数
【发布时间】:2014-11-10 00:20:56
【问题描述】:

对于setKVP方法,需要的参数是一个整数值

public void setkVp(int d){
   kVp=d;       
}

但是下面的代码会产生 Double 值,我怎样才能确保 e.setkVp 给出整数值而不是 Double

s="KVP ";
if (ln.contains(s))
   {
      int i=ln.indexOf("=");
      if (i>0){
         e.setkVp(parse(ln.substring(i+2,ln.length()-3))).intvalue();
      }

parse.. 从 CSV 文件中解析 KVP 的值。

【问题讨论】:

  • 使用 Integer.valueOf (value) 或使用 (int) value 将其转换为 int
  • (int)doubleValue - 原始类型
  • 并确保不要使用任何精度。如果需要,请使用 Math.ceil(doubleValue)Math.floor(doubleValue)
  • parse() 是做什么的?你怎么还没发?大概它返回Double?double? 哪个?为什么?你的意图是什么?有什么问题?

标签: java casting integer double


【解决方案1】:

e.setkVp(parse(ln.substring(i+2,ln.length()-3))).intvalue(); 应格式化为 e.setkVp(parse(ln.substring(i+2,ln.length()-3)).intvalue()); 否则你对 setkVp(int) 的返回值执行 intValue() 是无效的。

【讨论】:

  • 我遇到了一个错误,上面写着无法解析 intvalue();
  • 如果你的 parse() 方法返回一个 Double,使用 parse(foo).intValue()(注意驼峰式)应该返回一个 intdocs.oracle.com/javase/7/docs/api/java/lang/…
  • 可悲的是,我遇到了同样的错误,我已经调用了必要的库,但我仍然遇到了同样的错误......哪些状态无法解析 intValue();
  • 你是哪个版本的Java?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
相关资源
最近更新 更多