Conversion decimal point to floating point and vice versa

I would like to know if there is any way to convert decimal numbers to floating point, using the IEEE-754 standard, specifying whether it is simple or double. And vice versa, floating point to decimal specifying whether it is double or single.

Yes. You should be able to import and export singles, doubles, or quad-precision numbers in the IEEE standard. See documentation here.

(someNumbers = RandomReal[{1, 200}, 4, WorkingPrecision -> 140])


yielding:

{131.57843910491117542009357067044305298919523687461972590508545252797246656713683959501545442109954305145360196695641268407818906794518467693, 36.777212169625076229757244904535982444480287433912465096550209184759013144280916569005201142526738998958909685743061158332762603357972081895, 32.211986718696311559869777490390932918154744943543676822285668781237395283963457422161288449125141442835469928797914730615636279609237747203, 91.455311969662025855984807531478321762889779722600757410998496792433355267117887298097053278192108027867375906636235367744938744286139195293}

Let's export and import them as floats, doubles, and quads:

Export["/tmp/quads.dat", someNumbers, "Real128"];
(floats = Import["/tmp/floats.dat", "Real32"]);
(doubles = Import["/tmp/doubles.dat", "Real64"]);


Now look at the accuracy relative to the original 140 digit Reals:

someNumbers - SetPrecision[floats, 140] // N


yields:

{-6.32966*10^-6, -1.88067*10^-6, 1.76948*10^-7, -2.66657*10^-6}

someNumbers - SetPrecision[doubles, 140] // N


yields:

{-7.80161*10^-15, 2.67301*10^-15, 2.41998*10^-15, 5.82303*10^-15}

and

someNumbers - SetPrecision[quads, 140] // N


yields:

{2.27275*10^-32, 4.51408*10^-33, 3.39809*10^-33, 1.31565*10^-33}

Let's convert within Mathematica going from doubles to floats:

floatsFromDoubles = ImportString[ExportString[doubles, "Real32"], "Real32"];


Do we land on the same thing as converting our 140 digit reals?

Yes: floatsFromDoubles===floats $\mapsto$ True.