@Override
    public String toString() {
        double value = getValue(displayUnit);
        String integer = String.format(Locale.ENGLISH, "%d", (long) value);
        String decimal = String.format(Locale.ENGLISH, "%.2f", value);
        if (decimal.equals(integer + ".00")) {
            return integer + displayUnit.getUnitString();
        } else {
            return decimal + displayUnit.getUnitString();
        }
    }
@Test
    public void testToString() {
        assertByteSizeString("42B", "42 B");
        assertByteSizeString("42KB", "42 KB");
        assertByteSizeString("42MB", "42 MB");
        assertByteSizeString("42GB", "42 GB");
        assertByteSizeString("42TB", "42 TB");
        assertByteSizeString("42PB", "42 PB");
        assertByteSizeString("42.20KB", "42.2 KB");
        assertByteSizeString("42.33KB", "42.33KB");
    }