Я обнаружил проблему с десятичной точностью на метках меток диаграммы JavaFX при изменении автоматического выбора диапазона на оси диаграммы на false. Вот краткий пример:
package chart;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.ScatterChart;
import javafx.scene.chart.XYChart;
import javafx.scene.chart.XYChart.Data;
import javafx.stage.Stage;
public class Chart extends Application {
@Override
public void start(Stage primaryStage) {
NumberAxis xAxis = new NumberAxis();
NumberAxis yAxis = new NumberAxis();
yAxis.setAutoRanging(false);
yAxis.setForceZeroInRange(false);
yAxis.setUpperBound(1);
yAxis.setLowerBound(.999);
yAxis.setTickUnit(.0001);
ScatterChart<Number, Number> chart = new ScatterChart<>(xAxis, yAxis);
chart.getData().add(new XYChart.Series<>());
Scene scene = new Scene(chart, 600, 300);
primaryStage.setScene(scene);
primaryStage.show();
chart.getData().get(0).getData().add(new Data(1, .9999));
}
public static void main(String[] args) {
launch(args);
}
}
Если автоматический диапазон установлен в true, отметка отметки на оси Y go до 4 десятичных разрядов, в то время как она ложится только в 3 места, когда она ложна. Это также делает какое-то округление до меток. Как я могу получить такую же точность на автодиапазоне без его включения?