# SetAccuracy behavior

I'm puzzled by the output I get from SetAccuracy. According to the documentation, when SetAccuracy is used to increase the accuracy of a number, the number is padded with zeros. But, let's take a look at a couple of examples:

SetAccuracy[1.2, 5]
(* 1.2000 *)
SetAccuracy[1., 5]
(* 1.0000 *)
SetAccuracy[0.2, 5]
(* 0.2000 *)

These examples seem to work properly, so why does it behave differently in this case?

SetAccuracy[0., 5]
(* 0.*10^-5 *)

What should I do to get a zero with four trailing zeros?

Update I'm asking this question, because I need to export data to a txt file and I would like to avoid having 0.*10^-5 sort of numbers.

-
SetAccuracy is not a formatting tool, but intended to set accuracy of numeric value(s). How about something like PaddedForm[0., {4, 4}]? –  kirma Oct 29 '12 at 11:50
@kirma It might work, but it creates other problems if I try to export the data. –  VLC Oct 29 '12 at 12:05
What other problems? –  Rojo Oct 29 '12 at 12:19
NumberForm[0., {1, 4}] will print 0.0000 –  image_doctor Oct 29 '12 at 13:03
@image_doctor Maybe this workaround solves the problem:StandardForm@ NumberForm[1200345., {10, 4}, ExponentFunction -> (Null &)]. I'll check it now extensively. –  VLC Oct 29 '12 at 14:02

Might want to have a look at the InputForm of these.

SetAccuracy[0., 5] // InputForm

(*Out[38]//InputForm = 05.*)

SetAccuracy[1.2, 5] // InputForm

(*Out[39]//InputForm=1.19999999999999995559107901499373838305`5.079181246047625*)

I doubt either gives the behavior you are after. As was suggested in a comment, maybe NumberForm or PaddedForm will meet your needs.

-

The comments by image_doctor led me to the answer I was looking for:

StandardForm@NumberForm[1.2, {20, 4}, ExponentFunction -> (Null &)]
(* 1.2000 *)
StandardForm@NumberForm[1., {20, 4}, ExponentFunction -> (Null &)]
(* 1.0000 *)
StandardForm@NumberForm[0.2, {20, 4}, ExponentFunction -> (Null &)]
(* 0.2000 *)
StandardForm@NumberForm[0., {20, 4}, ExponentFunction -> (Null &)]
(* 0.0000 *)

The data are then consistent and can be easily exported.

-