十进制值的String.Format扼流圈?
问题描述:
我希望下面的两个测试(针对NUnit编写)都可以通过,但Decimal版本的失败是“System.FormatException:格式说明符无效”,正如Double版本一样。我无法弄清楚为什么。有人可以摆脱灯光吗?十进制值的String.Format扼流圈?
谢谢; 邓肯
[Test]
public void Integer_Format_Hex()
{
//Assume
Int32 myValue = 11101110;
//Arrange
//Act
//Assert
Assert.That(String.Format("0x{0:X8}" , myValue) , Is.EqualTo("0x00A963B6"));
}
[Test]
public void Decimal_Format_Hex()
{
//Assume
Decimal myValue = 11101110m;
//Arrange
//Act
//Assert
Assert.That(String.Format("0x{0:X8}" , myValue) , Is.EqualTo("0x00A963B6"));
}
[Test]
public void Decimal_Format_Hex2()
{
//Assume
Decimal myValue = 11101110m;
//Arrange
//Act
//Assert
Assert.That(myValue.ToString("X") , Is.EqualTo("00A963B6"));
}
答
从http://msdn.microsoft.com/en-us/library/fzeeb5cd(v=VS.90).aspx
Exerpt “的格式参数可以是任何有效的标准数字格式说明除了d,R和X ....”
真棒。
尊敬的甜jeebus方法名称 – Woot4Moo 2010-11-08 18:24:18
可能重复的[如何在十六进制和十进制数字之间转换数字](http://stackoverflow.com/questions/74148/how-to-convert-numbers-between-hex-and -decimal-in-c) – NotMe 2010-11-08 18:25:24
@ Woot4Moo:无参数! @Chris Lively:这当然是相关的,但是您提供的链接中的代码示例在使用时显示为FAIL。 – Duncan 2010-11-08 18:32:54