所以我有一个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(函数。