【问题标题】:Function to truncate values of resultset in java在java中截断结果集值的函数
【发布时间】:2015-05-22 15:02:07
【问题描述】:

我必须将从数据库中获得的值截断为两个小数部分,并将该值放入结果集中我以以下方式将结果集中的值添加到列表中

  while(rs.next()) 
             {
                Comp_Mps_vs ref_drop=new Comp_Mps_vs();

                ref_drop.setLogtime(rs.getString(1));
                ref_drop.setBeam_current(rs.getString(2));
                ref_drop.setBeam_energy(rs.getString(3));
                ref_drop.setP99_readback(rs.getString(4));
                ref_drop.setP99_setvalue(rs.getString(5));
                ref_drop.setP99_vmeset(rs.getString(6));
                ref_jsp.add(ref_drop);
             }   

ref_jsp 在哪里

List<Comp_Mps_vs> ref_jsp=new ArrayList<Comp_Mps_vs>();

现在我有一个方法,它将值四舍五入到两个浮点数,并将这些索引值传递到 ref_drop.setP99_vmeset(rs.getString(index_no));代码。

如何在java中实现这一点?

【问题讨论】:

  • 您要截断String 或值上的值吗?你需要向上/向下取整值吗?您能否提供一些理想截断的示例?
  • @JohnnyAW 如果我想在 String 上截断,怎么办?例如 123.4567889 被截断为 123.45。

标签: java floating-point rounding resultset


【解决方案1】:

为了对值进行四舍五入,首先需要将其转换为数字。为此,您可以使用

double d = Double.parseDouble(rs.getString(6))

有关此的更多详细信息,请参阅here

然后你需要创建一个格式化字符串:

String s  = new DecimalFormat(#.##").format(d);

之后你可以分配它:

ref_drop.setP99_vmeset(s);

【讨论】:

  • 在这方面我也有同样的问题,如果我有这样的 162 个设置方法,那么这三行使用不同的 setter 方法需要编写 162 次。如何在其中使用 for 循环,这样对于每下一个 rs.getString(),一个递增的值可以提供为整数。?
【解决方案2】:

你的意思是这样的数字格式吗?

Double doubleValue = Double.valueOf(rs.getString(6));
String formattedValue = String.format("%.2f", doubleValue);
ref_drop.setP99_vmeset(formattedValue);

因此,如果您从数据库中获取 11.1111 字符串,它将被格式化为 11.11

【讨论】:

  • 我有 162 列,那么我必须写这 3 行 162 次。还有其他替代方法吗??
  • 如何应用 for 循环,使得对于每个下一个 rs.getString(i),循环递增 1。可以应用的 for 循环是 for(int i=1;i
  • 无论如何你都会有 162 行,因为你必须设置你的属性
  • 是的,我会的,但是通过这个我将不得不再添加 162+162 行,所以我想在它上面应用一个 for 循环,这样 rs.getstring 的值每次都会增加。但是不知道怎么设置。
猜你喜欢
  • 1970-01-01
  • 2012-08-13
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 2021-01-13
相关资源
最近更新 更多