<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -",
    "macOS: 13.0.0 -",
    "tvOS: 16.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Swift",
  "identifier" : "/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Swift"
    ],
    "preciseIdentifier" : "s:s8DurationV10FoundationE16UnitsFormatStyleV29FractionalPartDisplayStrategyV"
  },
  "title" : "Duration.UnitsFormatStyle.FractionalPartDisplayStrategy"
}
-->

# Duration.UnitsFormatStyle.FractionalPartDisplayStrategy

A strategy that determines how to format the fractional part of a duration if the allowed units can’t represent it exactly.

```
struct FractionalPartDisplayStrategy
```

## Overview

When using a [`Duration.UnitsFormatStyle`](/documentation/Swift/Duration/UnitsFormatStyle), specifying a `FractionalPartDisplayStrategy` enables you to decide how to balance between accuracy and verbosity when you’re not using all of the available units (hours, minutes, and seconds). When a formatted duration has a fractional part, you can hide it entirely, round the unit up or down while hiding the fractional part, or show the unit with a fraction.

The following example shows different display strategies used with a duration of 1 hour, 15 minutes and unit format styles that only show hours.

```
let duration = Duration.seconds(75 * 60) // 1 minute, 15 seconds
let hide = duration.formatted(
    .units(allowed: [.hours],
           width: .wide,
           fractionalPart: .hide)) // 1 hour
let hideRounded = duration.formatted(
    .units(allowed: [.hours],
           width: .wide,
           fractionalPart: .hide(rounded:.up))) // 2 hours
let show = duration.formatted(
    .units(allowed: [.hours],
           width: .wide,
           fractionalPart: .show(length: 2))) // 1.25 hours
```

## Topics

### Creating a fractional part display strategy

[`init<Range>(lengthLimits: Range, roundingRule: FloatingPointRoundingRule, roundingIncrement: Double?)`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/init(lengthLimits:roundingRule:roundingIncrement:))

Creates a fractional part display strategy that uses the provided behaviors.

### Using common strategies

[`static var hide: Duration.UnitsFormatStyle.FractionalPartDisplayStrategy`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/hide)

A display strategy that hides any fractional part by truncating it.

[`static func hide(rounded: FloatingPointRoundingRule) -> Duration.UnitsFormatStyle.FractionalPartDisplayStrategy`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/hide(rounded:))

Creates a display strategy that hides any fractional part rounding the unit value.

[`static func show(length: Int, rounded: FloatingPointRoundingRule, increment: Double?) -> Duration.UnitsFormatStyle.FractionalPartDisplayStrategy`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/show(length:rounded:increment:))

Creates a display strategy that shows a fractional part.

### Working with strategy properties

[`var minimumLength: Int`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/minimumLength)

The minimum length of the fractional part, if shown.

[`var maximumLength: Int`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/maximumLength)

The maximum length of the fractional part, if shown.

[`var roundingIncrement: Double?`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/roundingIncrement)

A multiple by which a formatter rounds a fractional part of a duration.

[`var roundingRule: FloatingPointRoundingRule`](/documentation/Swift/Duration/UnitsFormatStyle/FractionalPartDisplayStrategy/roundingRule)

The rule for rounding a unit up or down if it has a fractional part.

### Encoding and decoding

### Hashing

### Comparing fractional part display strategies

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Sendable`](/documentation/Swift/Sendable)

[`Hashable`](/documentation/Swift/Hashable)

[`Encodable`](/documentation/Swift/Encodable)

[`Decodable`](/documentation/Swift/Decodable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)