如果我使用以下代码:
double test = Math.Ceiling(100 * 1.09); label75.Text = Convert.ToString(test);
我得到答案110,但这是不对的,应该是109(100%的9%).虽然它的价值低于9%.
我究竟做错了什么?
将其更改为十进制,您将获得期望的结果:
decimal test = Math.Ceiling(100 * 1.09m); // 109
注意1.09m中的m标识为十进制文字.这是因为十进制类型专门用于表示十进制数(而不仅仅是它们的二进制近似,双倍和浮点数).