Наиболее простой вариант заключается в использовании процедуры округления:
import numpy as np
x=[9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006]
print('standard:')
print(x)
print("\nhuman readable:")
print(np.around(x,decimals=2))
Это приводит к выходу:
standard:
[9.0, 0.053, 0.0325754, 0.0108928, 0.0557025, 0.0793303]
human readable:
[ 9. 0.05 0.03 0.01 0.06 0.08]
Вы можете использовать пользовательский cellFactory
, чтобы отображать элементы таким образом, который подходит вашим потребностям:
ComboBox<Dummy> comboBox = ...
Callback<ListView<Dummy>, ListCell<Dummy>> factory = lv -> new ListCell<Dummy>() {
@Override
protected void updateItem(Dummy item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? "" : item.getName());
}
};
comboBox.setCellFactory(factory);
comboBox.setButtonCell(factory.call(null));
Я предполагаю, что ComboBox вы имеете в виду: http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ComboBoxBase.html . Поскольку getValue()
- public
, вы можете сделать:
public class MyComboBox<T> extends ComboBox<T> {
private final Dummy dummy;
public MyComboBox(Dummy dummy) {
this.dummy = dummy;
}
public T getValue() {
return dummy.getName();
}
}
getValue
на String
, что во многих случаях приведет к ClassCastException
. Кроме того, вы возвращаете имя того же Dummy
, независимо от значений, выбранных в ComboBox
. И последнее, но не менее важное getValue()
- final
и, следовательно, нельзя переоценить.
– fabian
18 December 2016 в 13:07