This has probably already been reported, but a quick search didn't find it. Sorry if it has. The following all produce an 'ArgumentError: invalid value for Float(): "-"' "-.".to_yaml ["-."].to_yaml {:a => "-."}.to_yaml I've found a work around by reverting to syck but it's a little ugly.