我正在尝试编写一个将数字转换为罗马数字的函数.到目前为止这是我的代码; 但是,它仅适用于小于400的数字.是否有一种快速简便的方法来执行此转换,或扩展现有代码以便处理所有情况?在此先感谢您的帮助.
static string convertroman(int number)
{
int l = number / 10;
StringBuilder sb = new StringBuilder();
for (int m = 0; m <= l; m++)
{
if (l == 0)
{
break;
}
if (l == 5)
{
sb = sb.Append(ro.L.ToString());
break;
}
if (l == 4)
{
sb = sb.Append(ro.X.ToString()).Append(ro.L.ToString());
break;
}
if (l == 9)
{
sb = sb.Append(ro.X.ToString()).Append(ro.C.ToString());
break;
}
if (l == 10)
{
sb = sb.Append(ro.C.ToString());
break;
}
if (l > 5 && …Run Code Online (Sandbox Code Playgroud) 我正在使用格式函数(http://msdn.microsoft.com/en-us/library/59bz1f0h%28v=vs.90%29.aspx)来格式化我的输出.目前我使用这种格式字符串:
TestStr1 = Format(5459.4, "##,##0.00")
TestStr2 = Format(0.4, "##,##0.00")
TestStr3 = Format(0.0, "##,##0.00")
Run Code Online (Sandbox Code Playgroud)
上面的代码将分别返回"5,459.40","0.4"和"0.00".现在,如果该值等于零,我想显示" - ".如何在不使用if-else语句的情况下实现输出,只需格式化函数?
编辑:
除了Pranay的文章,我发现了一篇来自微软的文章,它位于底部.http://msdn.microsoft.com/en-us/library/0c899ak8.aspx