【发布时间】:2025-11-25 15:25:02
【问题描述】:
decimal d1 = 4.0m;
decimal d2 = 40.0m;
decimal d = d1 / d2;
string repr = d.ToString();
在 Windows 上,repr 得到“0.1”。在 Mono(Xamarin Android)上,我得到“0.1000000000000000000000000000”左右。是什么赋予了?此外,我已经看到建议除以 1.0000000000000000000000000000m 以消除不需要的尾随零。这在 Xamarin Android 上也不起作用。
已知错误?或者从技术上讲不是错误 - 这是否符合标准?
为了摆脱零,我将值转换为字符串,从字符串中删除尾随零,并将其转换回小数。它很弱。此外,我的解决方案不会产生我想要的确切结果。我宁愿留下适当重要的尾随零,而不是删除所有尾随零。
【问题讨论】:
-
是的,这是known bug。它很旧,卷起袖子;)
-
这对于十进制类型来说是相当令人震惊的。
标签: c# mono xamarin.android decimal