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

Div*_*vya 45 c#

我有多种类型的双.double a = 12.00我必须通过删除.00将其设为12

请帮我

Jon*_*eet 48

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

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


Hab*_*bib 31

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

int number = (int) a;
Run Code Online (Sandbox Code Playgroud)

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

值,舍入为最接近的32位有符号整数.如果值在两个整数之间,则返回偶数; 也就是说,4.5转换为4,5.5转换为6.

  • @MehdiKhademloo,纯``(int)a`将起作用,对于`1.4f`将是'1`,正好是'1`,没有精度点,因为它是一个整数.因此,就转换为"int"而言,没有舍入误差. (2认同)

Adi*_*dil 24

使用Math.Round

int d = (int) Math.Round(a, 0);
Run Code Online (Sandbox Code Playgroud)


Fai*_*yaz 23

使用Decimal.Truncate

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


voh*_*hul 11

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

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

double val = 12.00;

string displayed_value = val.ToString("N0"); // Output will be "12"
Run Code Online (Sandbox Code Playgroud)

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

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