Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

Converting to Celsius or Fahrenheit based on your locale since 5.8.4.

Remember you can use the special variable $^F to control this. If set to 0, uses Celsius; if set to 1, uses Fahrenheit; by default it's set to 2 which auto-detects based on your locale. If you don't believe me (and I have no idea why you wouldn't) then run the following on a sufficiently modern perl:

perl -E'say $^F'

I hear that 5.16 is going to modularise temperature scales so that you can download custom ones from CPAN, and come bundled with an additional scale for Kelvin.

 

Fahrenheit is a funny scale. The Celsius scale is, as everybody knows, based on the freezing and boiling points of water. The freezing point was designated 0; the boiling point 100; and everything in between was divided equally into a hundred degrees. (Although named after Anders Celsius, his scale actually labelled the boiling point 0, and the freezing point 100. The modern Celsius scale was developed after his death and named in his honour.)

Initially I thought Daniel Gabriel Fahrenheit must have followed a similar process but with a different liquid. After all, its zero doesn't seem to bear any relation to water.

But actually it turns out he used water after all. However, rather than dividing it into a scale of 100 parts, he used 180, and rather than defining the freezing point of water to be zero, he defined it as 32, because he knew he could achieve a lower zero by mixing water, salt and ammonium.

This is why, unlike miles versus kilometres, or pounds versus kilograms, you can use a simple formula to convert precisely between Celsius and Fahrenheit.

$f = 1.8 * $c + 32;

And it gives you an exact conversion (within the bounds of floating point arithmetic).

For fun, see what happens when you plug $c = -40 into that.


In reply to Re^3: Measure temperature outside in Perl (OT) by tobyink
in thread Measure temperature outside in Perl by chessgui

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (2)
As of 2024-04-26 00:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found