title: Why do the following statements give different outputs in Java?
body: <p>For some values of x (x is of type long),       </p>
  
  <pre class="lang-java prettyprint-override"><code> x %= (1e9+7);
  </code></pre>
  
  <p>and </p>
  
  <pre class="lang-java prettyprint-override"><code> x %= 1_000_000_007;
  </code></pre>
  
  <p>give different answers. Any idea why that could be?</p>
  
  <p>Also, is this underscore format (1_000_000_007) common across languages? Are there advantages to it, apart from enhanced readability?</p>