字符串的十进制值

时间:2012-06-08 09:37:53

标签: c# winforms .net-2.0

下面的计算应该得到33.3333333的值,但是在绑定显示值时我没有在消息框中得到正确的输出。

这里是否需要先进行格式化处理?

decimal result = (1/3)*100;
MessageBox.Show(result.ToString());

enter image description here

1 个答案:

答案 0 :(得分:7)

您正在使用整数执行计算,因此结果为int并在转让时转换为decimal。由于1/3已经0(在int算术中),因此将其乘以100并不会改变任何内容。

改为使用小数:

decimal result = (1m / 3m) * 100m;

数字文字的m后缀使其成为小数。

纳入Kay Zed的评论:

  

如果你正在处理变量而不是文字,你可以投射:

decimal result = ((decimal)a / (decimal)b) * 100m;