I’m attempting to create graph axis labels — the physical text. I know how to get the labels and print them using GDI, but my algorithm doesn’t do a great job of printing with fractional steps.
To print the labels, I currently get the first label and then add a step to each label that follows:
public static void PrintLabels(double start, double end, double step);
{
double current = start;
while (current <= end)
{
gfx.DrawString(current.ToString(),...);
current += step;
}
}
Is there a number.ToString("something") that will print out decimals if they are there, otherwise just the whole part? I would first check if either start, end, or step contains a fractional part, then if yes, print all labels with a decimal.
See the custom format strings here :http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
I think I understand your question… does
give you the behavior you are asking for? I often use
"#,##0.####"for similar labels.Also, see this question: Formatting numbers with significant figures in C#