62

我有双倍类型的数量。double a = 12.00 我必须通过删除 .00 使其变为 12

请帮我

4

7 回答 7

61

好吧12,并且12.00具有与值完全相同的表示double。你想以一个double或其他东西结束吗?(例如int,如果您确信该值在正确的范围内,并且截断效果是您想要的,您可以转换为 。)

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

于 2012-10-25T06:01:59.430 回答
39

如果您只需要 double 的整数部分,则使用显式强制转换为 int。

int number = (int) a;

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

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

于 2012-10-25T06:01:59.603 回答
33

Use Decimal.Truncate

It removes the fractional part from the decimal.

int i = (int)Decimal.Truncate(12.66m)
于 2014-08-25T00:32:36.120 回答
27

使用Math.Round

int d = (int) Math.Round(a, 0);
于 2012-10-25T06:01:33.550 回答
19

阅读您的所有评论,我认为您只是想以某种格式显示它,而不是更改值/将其转换为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

于 2018-07-27T07:27:05.693 回答
3

这是一个技巧

a =  double.Parse(a.ToString().Split(',')[0])
于 2016-09-06T12:42:01.387 回答
2

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

于 2019-07-21T07:34:33.203 回答