title: Nodejs to MSSQL decimal digits issue
body: <p>I'm working on an application developed using the Loopback framework for Node.js. I need to read data from a csv and save it on my SQL Server DB (I'm using an SQL Server 2014 instance). A column of the csv file contains numbers with 16 decimal digits. I have no problem reading them from the csv file, but when I save them on the DB it changes the last decimal digits. For instance, the first row of the csv has the value "0.0059888523696288" but on the DB i find "0.0059888525865972".</p>
  
  <p>I did a console.log in my javascript code to check the numbers and they're printed correctly, so I'm guessing that the issue happens when the data is read by the DB.</p>
  
  <p>This is the definition of the property mapped in my javascript model:</p>
  
  <pre><code>"forecast": {
        "type": "Number",
        "required": true,
        "length": null,
        "precision": 53,
        "scale": null,
        "mssql": {
          "columnName": "forecast",
          "dataType": "float",
          "dataLength": null,
          "dataPrecision": 53,
          "dataScale": null,
          "nullable": "NO"
        }
      }
  </code></pre>
  
  <p>I tried changing the definition of the column in the DB table to decimal(18,16) and the one in the model accordingly, I performed the insert again but I got the same result. </p>
  
  <p>Any explainations on this behavior and how to get the correct number on the DB?</p>
  
  <p>edit:</p>
  
  <p>I did some more logging as suggested in the comments, here's an output example:</p>
  
  <p>value read from csv: 0.0045747027551005</p>
  
  <p>value stored in another js variable: 0.0045747027551005</p>
  
  <p>connector output:</p>
  
  <pre><code>loopback:connector:mssql SQL:
  DECLARE @insertedIds TABLE (id INT)
  INSERT INTO [dbo].[PLAN]([plan],[period],[forecast]) OUTPUT INSERTED.[id] into @insertedIds VALUES(@param1,@param2,@param3)
  SELECT id AS insertId from @insertedIds
   Parameters: [137,17,0.0045747027551005] +3ms
  </code></pre>
  
  <p>Value stored on db: 0.0045747025869787</p>
  
  <p>Even after changing the column to decimal (28,16) I got the same output. That's weird.</p>