Je m'attends à ce que les deux tests ci-dessous (écrits pour NUnit) soient réussis, mais la version Decimal échoue avec "System.FormatException: Spécificateur de format invalide", tout comme une version Double. Je ne peux pas comprendre pourquoi. Quelqu'un peut-il s'il vous plaît faire la lumière?String.Format étrangle sur les valeurs décimales?
Merci; Duncan
[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"));
}
Chers noms de méthodes jeebus doux – Woot4Moo
duplication possible de [Comment convertir les nombres entre hexadécimal et décimal en C#] (http://stackoverflow.com/questions/74148/how-to-convert-numbers-between-hex-and -decimal-en-c) – NotMe
@ Woot4Moo: aucun argument! @Chris Lively: il est certainement lié, mais les exemples de code dans le lien que vous fournissez apparaissent à FAIL lorsqu'il est utilisé. – Duncan