java - Swing 中的 Round Double 值

标签 java swing

我提到了如下代码。我的问题是 data.setValueAt(28.7567, 1, 1);该值应显示为 28.757,但其值为 28.7567000000000,那么 Jtable.class 是否添加了额外的零或任何其他类,是否将该值视为 double ,如何解决此问题?

import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import util.leveleditor.components.LETableModel;

public class JRTest 
{
 public static void main(String args[])
{
    Object[][] datal = new Object[30][30];
    Object[] titles = new Object[30]; 

    LETableModel model = new LETableModel(datal, titles);

    JTable data = new JTable(model);

    data.setFillsViewportHeight(true);
    data.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    data.setShowGrid(true);
    data.setGridColor(Color.BLACK);
    data.setTableHeader(null);

    JFrame frame = new JFrame("Test");

    frame.add(new JScrollPane(data));

    data.setValueAt(28.7567, 1, 1);

    frame.pack();
    frame.setVisible(true);
}
}

最佳答案

JTable.setValueAt()方法的第一个参数只是Object类型。因此,如果您想要 28.757,则直接将其作为字符串传递。

data.setValueAt("28.757", 1, 1);

或者,如果您想传递 Double 值,并且希望该值始终格式化为 3 位小数,则使用格式化程序。

检查以下链接: Best way to Format a Double value to 2 Decimal places

关于java - Swing 中的 Round Double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33141131/

相关文章:

java - 在 actionPerformed 中运行 "this"方法 - JButton?

java - 如何使 JFrame 中出现新图像?

java - 正则表达式模式未获取匹配项

java.net.socket 实现

Java Azure 函数卡住 "Executing"

java - 交替符号+循环

java - 在 JPanel 中生成包含多个点的图

java - 使 glassPane 适合 JPanel 的尺寸

java - 从另一个匿名类访问匿名类中的 "nameless"Jbutton?

java - JPA系统异常访问字段错误