Làm thế nào để chuyển đổi gấp đôi lên chuỗi mà không có sức mạnh tới 10 đại diện (E-05)Làm thế nào để chuyển đổi gấp đôi lên chuỗi mà không có sức mạnh tới 10 đại diện (E-05)
double value = 0.000099999999833333343;
string text = value.ToString();
Console.WriteLine(text); // 9,99999998333333E-05
Tôi muốn chuỗi văn bản là 0,000099999999833333343 (hoặc gần đó, tôi không làm khoa học tên lửa :)
tôi đã thử các biến thể sau
Console.WriteLine(value.ToString()); // 9,99999998333333E-05
Console.WriteLine(value.ToString("R20")); // 9,9999999833333343E-05
Console.WriteLine(value.ToString("N20")); // 0,00009999999983333330
Console.WriteLine(String.Format("{0:F20}", value)); // 0,00009999999983333330
Đổi ng tostring N20 hoặc định dạng F20 có vẻ gần nhất với những gì tôi muốn, nhưng tôi kết thúc với rất nhiều dấu 0, là có một cách thông minh để tránh điều này? Tôi muốn nhận được gần với đại diện kép nhất có thể 0.000099999999833333343
Khi xuống bỏ phiếu, xin vui lòng để lại nhận xét. Cảm ơn. –