我有双倍类型的数量。double a = 12.00 我必须通过删除 .00 使其变为 12
请帮我
好吧12
,并且12.00
具有与值完全相同的表示double
。你想以一个double
或其他东西结束吗?(例如int
,如果您确信该值在正确的范围内,并且截断效果是您想要的,您可以转换为 。)
您可能还想查看这些方法:
Math.Floor
Math.Ceiling
Math.Round
(如何处理中点的变化)Math.Truncate
如果您只需要 double 的整数部分,则使用显式强制转换为 int。
int number = (int) a;
您可以使用Convert.ToInt32 Method (Double),但这会将数字四舍五入为最接近的整数。
值,四舍五入到最接近的 32 位有符号整数。如果 value 在两个整数的中间,则返回偶数;即4.5转换为4,5.5转换为6。
Use Decimal.Truncate
It removes the fractional part from the decimal.
int i = (int)Decimal.Truncate(12.66m)
int d = (int) Math.Round(a, 0);
阅读您的所有评论,我认为您只是想以某种格式显示它,而不是更改值/将其转换为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
这是一个技巧
a = double.Parse(a.ToString().Split(',')[0])
因为点后的数字仅为零,所以最好的解决方案是使用 Math.Round(MyNumber)