Tại sao .NET 5.0 và Framework trong C # không trả về cùng một giá trị [trùng lặp]
Dec 28 2020
Tôi có hai giá trị như dưới đây,
V1 = 44194.291666666664và v2 = 44193.
Các thao tác dưới đây trả về các giá trị khác nhau trong .NETCore và .Framework
| Kết quả sản phẩm | Phép toán số học : (v1 - v2) | ToString () (v1 - v2) .ToString () |
|---|---|---|
| Kết quả .NET5.0 | 1,2916666666642413 | "1.2916666666642413" |
| Kết quả .NETFramework | 1,2916666666642414 | "1.29166666666424" |
Đoạn mã
double v1 = 44194.291666666664;
double v2 = 44193;
double value = v1 - v2;
string output = (v1 - v2).ToString();
Trả lời
1 JonathanG. Jan 07 2021 at 22:02
Đây là (có thể) theo thiết kế của .NET Core 3.0. Xem bài đăng trên blog này về sự thay đổi:https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/