<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Development on Ulis Notes</title>
    <link>https://wolf-u.li/en/tag/development/</link>
    <description>Recent content in Development on Ulis Notes</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Thu, 14 Dec 2017 10:33:14 +1400</lastBuildDate>
    <atom:link href="https://wolf-u.li/en/tag/development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Type Conversion from Int to Float in the Arduino Code</title>
      
      
      <link>https://wolf-u.li/type-conversion-from-int-to-float-in-the-arduino-code/</link>
      <pubDate>Sun, 15 May 2016 12:14:38 +1500</pubDate>
      <guid>https://wolf-u.li/type-conversion-from-int-to-float-in-the-arduino-code/</guid>
      <description>&lt;p&gt;A couple days ago i played around with a SI7021 on my ESP8266 and recognized that the temperature output of the used &lt;link rel=dns-prefetch href=//github.com /&gt; &lt;a href=&#34;https://github.com/LowPowerLab/SI7021&#34;
    title=&#34;Library&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Library&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; was given as an integer, so without a comma or dot for the separation of the decimal places. Like 2495 instead of 24,95°C. Not really problematic, but for using the numbers with MQTT it was relevant to convert it to the proper type which was &amp;ldquo;Float&amp;rdquo;&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>A couple days ago i played around with a SI7021 on my ESP8266 and recognized that the temperature output of the used <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/LowPowerLab/SI7021"
    title="Library" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Library&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> was given as an integer, so without a comma or dot for the separation of the decimal places. Like 2495 instead of 24,95°C. Not really problematic, but for using the numbers with MQTT it was relevant to convert it to the proper type which was &ldquo;Float&rdquo;</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<h2 id="solution">Solution</h2>
<p>That is how this works:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-cpp" data-lang="cpp"><span class="line"><span class="cl"><span class="kt">float</span> <span class="n">tempfloat</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kt">int</span> <span class="n">tempint</span> <span class="o">=</span> <span class="mi">2495</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="n">tempfloat</span> <span class="o">=</span> <span class="p">(</span><span class="kt">float</span><span class="p">)</span> <span class="n">tempint</span> <span class="o">/</span> <span class="mf">100.0</span><span class="p">;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Take care to add a decimal place to the division. The Usage of <code>(float)</code> executes the casting which changes the type of the variable content.</p>
<h2 id="sources">Sources</h2>
<ul>
<li><link rel=dns-prefetch href=//www.arduino.cc /> <a href="https://www.arduino.cc/en/Reference/Float"
    title="Arduino - Float" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Arduino - Float&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//www.arduino.cc /> <a href="https://www.arduino.cc/en/Reference/Cast"
    title="Arduino - Cast" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Arduino - Cast&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
