下面的计算应该得到33.3333333的值,但是在绑定显示值时我没有在消息框中得到正确的输出。
这里是否需要先进行格式化处理?
decimal result = (1/3)*100;
MessageBox.Show(result.ToString());
答案 0 :(得分:7)
您正在使用整数执行计算,因此结果为int
并在转让时转换为decimal
。由于1/3
已经0
(在int
算术中),因此将其乘以100
并不会改变任何内容。
改为使用小数:
decimal result = (1m / 3m) * 100m;
数字文字的m
后缀使其成为小数。
纳入Kay Zed的评论:
如果你正在处理变量而不是文字,你可以投射:
decimal result = ((decimal)a / (decimal)b) * 100m;