如何从C#中的数字中删除小数部分

时间:2012-10-25 06:00:09

标签: c#

我的数字类型为double。  双a = 12.00 我必须通过删除.00

将其设为12

请帮帮我

7 个答案:

答案 0 :(得分:46)

1212.00double值具有完全相同的表示形式。您是否尝试使用double或其他内容? (例如,如果您确信值将在正确的范围内,并且截断效果是您想要的那样,则可以转换为int。)

您可能也想查看这些方法:

答案 1 :(得分:30)

如果你只需要double的整数部分,那么使用显式转换为int。

int number = (int) a;

您可以使用Convert.ToInt32 Method (Double),但这会将数字四舍五入到最接近的整数。

  

值,四舍五入到最接近的32位有符号整数。如果价值是   在两个整数之间,返回偶数;那   是,4.5转换为4,5.5转换为6.

答案 2 :(得分:23)

使用Math.Round

int d = (int) Math.Round(a, 0);

答案 3 :(得分:18)

使用Decimal.Truncate

它从小数中删除小数部分。

int i = (int)Decimal.Truncate(12.66m)

答案 4 :(得分:7)

阅读您的所有评论,我认为您只是在尝试以某种格式显示它,而不是更改值/将其强制转换为int

我认为将12.00显示为"12"的最简单方法是使用字符串格式说明符。

double val = 12.00;

string displayed_value = val.ToString("N0"); // Output will be "12"

此解决方案的最好之处在于,它将1200.00更改为"1,200"(在其中添加逗号),这对于显示某物的金额/金额/价格非常有用。

更多信息可以在这里找到: https://msdn.microsoft.com/en-us/library/kfsatb94(v=vs.110).aspx

答案 5 :(得分:5)

这是一个技巧

a =  double.Parse(a.ToString().Split(',')[0])

答案 6 :(得分:1)

因为点后的数字仅为零,所以最好的解决方案是使用Math.Round(MyNumber)