Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 9aafd0c

Browse files
justinvpstephentoub
authored andcommitted
StringBuilder: Use Decimal.TryFormat (#15170)
1 parent 42544d8 commit 9aafd0c

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/mscorlib/shared/System/Text/StringBuilder.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1040,7 +1040,18 @@ public StringBuilder Append(long value)
10401040

10411041
public StringBuilder Append(double value) => Append(value.ToString());
10421042

1043-
public StringBuilder Append(decimal value) => Append(value.ToString());
1043+
public StringBuilder Append(decimal value)
1044+
{
1045+
if (value.TryFormat(RemainingCurrentChunk, out int charsWritten))
1046+
{
1047+
m_ChunkLength += charsWritten;
1048+
return this;
1049+
}
1050+
else
1051+
{
1052+
return Append(value.ToString());
1053+
}
1054+
}
10441055

10451056
[CLSCompliant(false)]
10461057
public StringBuilder Append(ushort value)

src/mscorlib/src/System/Decimal.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ namespace System
6060
[Serializable]
6161
[System.Runtime.Versioning.NonVersionable] // This only applies to field layout
6262
[System.Runtime.CompilerServices.TypeForwardedFrom("mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
63-
public partial struct Decimal : IFormattable, IComparable, IConvertible, IComparable<Decimal>, IEquatable<Decimal>, IDeserializationCallback
63+
public partial struct Decimal : IFormattable, IComparable, IConvertible, IComparable<Decimal>, IEquatable<Decimal>, IDeserializationCallback, ISpanFormattable
6464
{
6565
// Sign mask for the flags field. A value of zero in this bit indicates a
6666
// positive Decimal value, and a value of one in this bit indicates a

0 commit comments

Comments
 (0)