Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
33
Task/Temperature-conversion/D/temperature-conversion.d
Normal file
33
Task/Temperature-conversion/D/temperature-conversion.d
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
double kelvinToCelsius(in double k) pure nothrow @safe {
|
||||
return k - 273.15;
|
||||
}
|
||||
|
||||
double kelvinToFahrenheit(in double k) pure nothrow @safe {
|
||||
return k * 1.8 - 459.67;
|
||||
}
|
||||
|
||||
double kelvinToRankine(in double k) pure nothrow @safe {
|
||||
return k * 1.8;
|
||||
}
|
||||
|
||||
unittest {
|
||||
import std.math: approxEqual;
|
||||
assert(approxEqual(kelvinToCelsius(21.0), -252.15));
|
||||
assert(approxEqual(kelvinToFahrenheit(21.0), -421.87));
|
||||
assert(approxEqual(kelvinToRankine(21.0), 37.8));
|
||||
}
|
||||
|
||||
void main(string[] args) {
|
||||
import std.stdio, std.conv, std.string;
|
||||
|
||||
if (args.length == 2 && isNumeric(args[1])) {
|
||||
immutable kelvin = to!double(args[1]);
|
||||
if (kelvin >= 0) {
|
||||
writefln("K %2.2f", kelvin);
|
||||
writefln("C %2.2f", kelvinToCelsius(kelvin));
|
||||
writefln("F %2.2f", kelvinToFahrenheit(kelvin));
|
||||
writefln("R %2.2f", kelvinToRankine(kelvin));
|
||||
} else
|
||||
writefln("%2.2f K is below absolute zero", kelvin);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue