Có số thập phân, muốn cắt thành 2 chữ số thập phân nếu cóCó số thập phân, muốn cắt thành 2 chữ số thập phân nếu có
Trả lời
Bạn đã thử sử dụng value = Decimal.Round(value, 2)
?
Ví dụ:
using System;
class Test
{
static void Main()
{
decimal d = 1234.5678m;
Console.WriteLine("Before: {0}", d); // Prints 1234.5678
d = decimal.Round(d, 2);
Console.WriteLine("After: {0}", d); // Prints 1234.57
}
}
Lưu ý rằng điều này đang đi ngang thay vì chỉ cắt tỉa (vì vậy ở đây nó làm tròn lên) ... chính xác những gì bạn cần? Rất có thể cấu trúc Decimal
hỗ trợ bất cứ điều gì bạn cần làm. Tham khảo MSDN để có thêm tùy chọn.
Math.Round có thể làm tròn của ngân hàng. http://msdn.microsoft.com/en-us/library/ms131275.aspx –
decimal.Truncate(myDecimal * 100)/100
Điều này sẽ cắt mọi thứ theo hai chữ số thập phân đầu tiên. Để làm tròn, hãy xem câu trả lời của Jon.
này nên làm việc (EDIT: Cố định để loại bỏ làm tròn):
((Int32)(value * Math.Pow(10, decimalPlaces)))/(Math.Pow(10D, decimalPlaces));
Trong C# '^' là 'xor'. Ngoài ra, nếu ai đó sử dụng cơ hội 'thập phân' thì đó là lựa chọn có chủ ý và có thể họ không muốn loại khác (ngoài ví dụ của bạn là cách tắt trong mọi trường hợp). – Joey
Phải, xin lỗi phải là math.exp(). Làm thế nào là nó đi nếu không? –
'Int' không phải là một loại trong C# và bạn đang làm phân chia số nguyên sau đó, không để lại dấu thập phân nào. – Joey
Nếu nó chỉ dành riêng cho mục đích hiển thị, bạn có thể sử dụng:
Console.Out.WriteLine("Number is: {0:F2}", myDecimalNumber);
Bạn có muốn chỉ là "cắt xén các dư thừa số thập phân "hoặc bạn có muốn làm tròn như Jon nói không? –
Cắt ngắn hoặc tròn? Để cắt ngắn xem: http://stackoverflow.com/questions/329957/truncate-decimal-number-not-round-off – SwDevMan81