# Difference between \`Union{Missing, Float64}\` and \`Float64?\`

**URL:** <https://discourse.julialang.org/t/difference-between-union-missing-float64-and-float64/57542>\
**Category:** New to Julia\
**Tags:** dataframes\
**Created:** [March 19, 2021, 2:20pm UTC](https://discourse.julialang.org/t/difference-between-union-missing-float64-and-float64/57542 "2021-03-19T14:20:06Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![alessio](https://avatars.discourse-cdn.com/v4/letter/a/d6d6ee/32.png) [@alessio](https://discourse.julialang.org/u/alessio)\
**Post date:** [March 20, 2021, 11:45am UTC](https://discourse.julialang.org/t/difference-between-union-missing-float64-and-float64/57542/7 "2021-03-20T11:45:10Z")

</div>

Good question.  
I had some time today to investigate and came up with the following conclusion: **it’s just a matter of display real estate**.  
If the column name is short, then there would not be enough space to fit the `Union{...}` header

```julia
julia> DataFrame(a = [1,2,3,missing])
4×1 DataFrame
│ Row │ a │
│ │ Int64? │
├─────┼─────────┤
│ 1 │ 1 │
│ 2 │ 2 │
│ 3 │ 3 │
│ 4 │ missing │

```

However, if the column name is long enough, then the `Union{...}` type name representation would fit and so would be used:

```julia
julia> DataFrame(a12345678912345678901 = [1,2,3,missing])
4×1 DataFrame
│ Row │ a12345678912345678901 │
│ │ Union{Missing, Int64} │
├─────┼───────────────────────┤
│ 1 │ 1 │
│ 2 │ 2 │
│ 3 │ 3 │
│ 4 │ missing │

```

---

_[View the full topic](https://discourse.julialang.org/t/difference-between-union-missing-float64-and-float64/57542)._
