【发布时间】:2013-08-12 23:37:34
【问题描述】:
我必须使用传递给我的代码的各种格式描述符来格式化小数,这些格式描述符指定了小数点左侧的不同有效位数。每个格式描述符的 ToString 输出左侧不能有太多数字,否则我应该返回错误(格式溢出)。
是否有一些 ToString 十进制格式描述符(我找不到任何)或其他十进制到字符串的转换机制,如果小数大于为小数左侧分配的字符串空间,我可以获得异常?我希望抛出类似下面的代码而不是工作。我希望有比我在格式描述符中计数字符更优雅/内置的东西,并找出自己的最大小数是多少,并在尝试转换之前进行比较。谢谢!
static void Main(string[] args)
{
string lFormat = null;
decimal lValue = 123456.5678m;
// For example, I would like something like this to throw because the number would not fit into 3 significant left side digits...
lFormat = "000.00";
Console.WriteLine("Format '{0}' value '{1}'.", lFormat, lValue.ToString(lFormat));
Console.WriteLine("Hit Enter to exit...");
Console.ReadLine();
}
【问题讨论】:
-
你可能想多了:if (lValue > 999.999m) throw ...
-
除了格式不总是###.### 并且可能有 2 或 3 或 4 或任何有效的左数字...