十进制舍入问题



所以我有一个C#web api端点,它返回一个C#十进制值49.10。因此,我们将其返回到VB.NET Web窗体应用程序中,返回结果为49.1,尽管它们都是基元类型的十进制。

真正让这个问题奇怪的是,我们有两台本地机器,每台机器上都有相同的代码,在我的机器上返回49.10,但在同事的机器上则返回49.1。

真的很令人困惑,似乎无法弄清真相,想知道是否有人遇到过这件事,知道我错过了什么。

C#模型是这样的。。。

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

VB.NET模型如下。。。

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

我之所以这么问,是因为它在一台机器上工作,而在另一台上不工作,所以它可能与窗口设置有关??我以为CLR会处理这样的事情。

谢谢你的建议。

我使用VB.Net已经有一段时间了。对于双精度/十进制,Vb将自动截断零,因为它们不重要。如果要显示2个小数点,请使用FormatNumber(i,x(函数。

最新更新