十进制类型舍入问题

时间:2020-07-22 13:49:17

标签: c# vb.net webapi

所以我有一个C#Web API端点,该端点返回的C#十进制值为49.10。因此,我们将其返回到VB.NET Webforms应用程序中,即使它们都是原始类型十进制,返回结果也显示为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

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

谢谢您的建议。

1 个答案:

答案 0 :(得分:1)

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

相关问题