title: ElasticSearch rounds float value in painless script
body: <p>I noticed rounding issue when using scripting feature of ElasticSearch.
  I've the following mapping:</p>
  
  <pre><code>{
    "my-index": {
      "mappings": {
        "my-document": {
          "properties": {
            "id": {
              "type": "long"
            },
            "foo": {
              "type": "float"
            }
          }
        }
      }
    }
  }
  </code></pre>
  
  <p>and a bunch of documents indexed. One document has a value of <code>159944154.8644</code> for <code>foo</code> field. When I send the following query:</p>
  
  <pre><code>{
    "query": {
      "bool": {
        "must": [
          { "match": { "id": 42 } }
        ]
      }
    },
    "_source": {
      "includes": ["id","foo"]
    },
    "script_fields": {
      "foo_scripted": {
        "script": {
          "lang": "painless",
          "inline": "doc['foo'].value"
        }
      }
    }
  }
  </code></pre>
  
  <p>I'm getting the following rounded value in response:</p>
  
  <pre><code>{
    "_index": "my-index",
    "_type": "my-document",
    "_id": "42",
    "_score": 1,
    "_source": {
      "foo": 1.599441548644E8, //= 159944154.8644 -&gt; correct!
      "id": 42
    },
    "fields": {
      "foo_scripted": [
        1.5994416E8 //= 159944160.0 -&gt; rounded :(
      ]
    }
  }
  </code></pre>
  
  <p>Any idea how to to fix this? Thanks in advance.</p>
  
  <p>ES version: 5.3.0</p>