Tôi có nên nói rằng tôi đi qua các mặt nạ để một bên thứ 3 thành phần nào đó là điều với nó. Tôi không thể thực hiện bất kỳ nhào lộn nào với những con số không may. Nó có là mặt nạ thực hiện thủ thuật.
Vì vậy, tôi cho rằng bạn đang bị mắc kẹt với Float.ToString(String)
, và rằng bạn chỉ không thể chỉnh sửa p1
trong f.ToString("p1")
. Bây giờ đó là một điều khó khăn. Nếu bạn không sợ bất kỳ điều gì liên quan đến thay đổi được ngụ ý, bạn có thể thực hiện các thao tác sau:
Định dạng số "P", được ghi thành On MSDN, sử dụng ký hiệu "%". NumericFormatInfo
là thành viên của số CultureInfo
hiện tại của bạn. Những gì bạn có thể làm, là sao chép CurrentCulture
của bạn, và sửa đổi các PercentSymbol để ""
như sau:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
float f = 0.479f;
Console.WriteLine(f.ToString("p1")); //will write 47.9%
CultureInfo ci = CultureInfo.CurrentCulture.Clone() as CultureInfo;
ci.NumberFormat.PercentSymbol = "";
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
Console.WriteLine(f.ToString("p1")); //will write 47.9
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
Đây sẽ là con đường để đi nếu bạn không muốn thay đổi cuộc gọi ToString.
Nguồn
2010-01-16 03:21:22
thành phần thứ ba của bạn làm gì với chuỗi được định dạng? nó có giới hạn độ dài văn bản đã định dạng của bạn không? –
@Rubens Bởi vì nó chỉ đơn giản là cung cấp một thuộc tính .FormatString có mặt nạ này. Tất cả các định dạng được thực hiện bởi sự kiểm soát của bên thứ 3. – AngryHacker
Bạn có thể tạo một NumberInfoFormat mới không? Nếu có, hãy kiểm tra bài đăng đã chỉnh sửa của tôi. – keyboardP