Plural rules do not detect "zero" for double 0.0

Given a plural rule using a floating point format specifier:


    <key>test</key>
    <dict>
        <key>NSStringLocalizedFormatKey</key>
        <string>%#@test_1@</string>
        <key>test_1</key>
        <dict>
            <key>NSStringFormatSpecTypeKey</key>
            <string>NSStringPluralRuleType</string>
            <key>NSStringFormatValueTypeKey</key>
            <string>f</string> <!-- 64 bit floating point (double) spec -->
            <key>zero</key>
            <string>zero</string>
            <key>one</key>
            <string>one</string>
            <key>other</key>
            <string>other</string>
        </dict>
    </dict>


values of 0.0 are processed as "other" rather than "zero"


let t = NSLocalizedString("test", comment: "test")
String.localizedStringWithFormat(t, 0.0) // "other"


Changing the 'f' to 'd' works correctly


let t = NSLocalizedString("test", comment: "test")
String.localizedStringWithFormat(t, 0) // "zero"


Does anyone have any idea what's happening here?

On further reading of CDLR, it seems this may actually be correct. At http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Fractions,it says "...values like 1 vs 1.0 may behave differently..."

Plural rules do not detect "zero" for double 0.0
 
 
Q