簡體   English   中英

Java/JavaFX slider 小數點

[英]Java/JavaFX slider decimal points

我是一個新的 JavaFX 程序員,我的問題是我在 slider 中有多個小數點,我只想要一個。 對於其中的每個值,我都會得到 99.99999999999,但我只想得到一個像 99.9 這樣的值

事情是 printf 在這里不適用我猜我只知道這樣 >.<

private void createView() {

        final GridPane radioGridPane = new GridPane();
        final Label frequencyLabel = new Label("something");
        final Slider sliderFrequency = new Slider(87.9, 107.9, 90);

        frequencyLabel.textProperty().bind(sliderFrequency.valueProperty().asString());
        radioGridPane.add(frequencyLabel, 2, 1);
        radioGridPane.add(sliderFrequency, 3, 1);

        this.setCenter(radioGridPane);
        radioGridPane.setGridLinesVisible(true);
    }

你實際上很接近。 您可以使用帶有以下簽名的asString方法:接受格式參數的javafx.beans.binding.NumberExpressionBase#asString(java.lang.String)

示例用法:

public class FormatBindingSSCCE extends Application {

    @Override
    public void start(Stage stage) {
        final Label frequencyLabel = new Label();
        final Slider sliderFrequency = new Slider(87.9, 107.9, 90);
        frequencyLabel.textProperty().bind(sliderFrequency.valueProperty().asString("%.1f"));
        
        final GridPane radioGridPane = new GridPane();
        radioGridPane.add(frequencyLabel, 2, 1);
        radioGridPane.add(sliderFrequency, 3, 1);

        final Scene scene = new Scene(radioGridPane);
        stage.setScene(scene);
        stage.show();
    }

}

在此處輸入圖像描述

您可以將十進制值乘以 10,將其截斷/取整為 integer,然后再除以 10。 這將在該點后為您提供一個小數點后的值。 代碼:

float val = 0.999f;
float valOneDecimal = ((int) (val * 10f)) / 10f;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM