簡體   English   中英

十進制類型舍入問題

[英]decimal type rounding issue

所以我有一個 C# web api 端點返回一個 ZD7EFA19FBE7D3972FD5ADB602492210 十進制值。 因此,我們將其返回到 VB.NET 網絡表單應用程序中,返回結果為 49.1,即使它們都是原始類型的十進制。

真正讓這個問題變得奇怪的是我們有兩台本地機器,每台機器上都有相同的代碼,在我的機器上它返回為 49.10,但在同事機器上它返回為 49.1。

真正令人費解的情況似乎無法深究,並想知道是否有人遇到過這個並知道我錯過了什么。

C# Model是這樣的……

[DataContract(Namespace = "")]
[Serializable]
public class TestClaim
{
   [DataMember(EmitDefaultValue = false)]
   public decimal VoucherSupplementFirstPair { get; set; }
}

VB.NET Model是這樣的……

<Serializable()>
Public Class TestClaim
   Public Property VoucherSupplementFirstPair As Decimal
End Class

我問的原因是因為它適用於一台機器而不是另一台機器,所以它可能與 windows 設置有關? 我認為CLR會處理這樣的事情。

感謝您的任何建議。

我已經使用 VB.Net 一段時間了。 對於雙/十進制,Vb 將自動截斷零,因為它們不重要。 如果要顯示 2 個小數點,請使用FormatNumber(i, x) function。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM