我需要使用固定数量的字符转换固定格式的任何数字。装置1500和-1.5或0.025需要具有相同的长度。我还必须以这种形式提供格式:Format = "{???}";
当我输入Format = "{0000}";
时,我可以将1500限制为“1500”,但是-1.5 - > “-0001.5”表示我在此之后有太多数字。
可以使用Format = "{ 0.0;-0.0; 0.0}"
来填写负号。
如何修复不同数字的数字计数?
字符串的长度无关紧要,最重要的是长度相等。
示例:
1500 -> " 1500.000" or " 1500"
-1500 -> "-1500.000" or "- 1500" or " -1500"
1.5 -> " 1.500" or " 1.5"
-0.25-> " -0.250" or "- 0.25"
0.00005 -> " 0.000" or " 0"
150000-> " 150000.0" or " 150000"
15000000 " 15000000"
编辑:
我想格式化图表的y轴。我无法使用类似value.ToString("???")
的内容我需要使用chartArea.AxisY.LabelStyle.Format = "{???}";
答案 0 :(得分:1)
为什么不使用格式? “F3”强制小数点后3位数,PadLeft确保总长度
Double value = 1500.0;
// 3 digits after decimal point, 9 characters length
String result = value.ToString("F3").PadLeft(9, ' ');
0 -> 0.000
1500.0 -> 1500.000
-1500.0 -> -1500.000
-0.25 -> -0.250
另一种(类似的)可能性是String.Format:
Double value = 1500.0;
// Put value at place {0} with format "F4" aligned to right up to 9 symbols
String result = String.Format("{0:9,F4}", value);
答案 1 :(得分:0)
试一试> result = Math.Round(yourValue, 3);
查看完整参考here!
答案 2 :(得分:0)
你无法通过简单的格式化功能实现这一目标
string result = string.Empty;
var array = dec.ToString().Split('.');
if (dec > 0)
{
result = array[0].PadLeft(9).Remove(0, 9);
if (array.Count() > 1)
{
result += '.' + array[1].PadRight(3).Remove(3);
}
}
else
{
result = "-"+array[0].PadLeft(9).Remove(0, 9);
if (array.Count() > 1)
{
result += '.' + array[1].PadRight(3).Remove(3);
}
}