最近在开发商城的功能,遇到了decimal的类型转换问题,将问题整理如下:
一、string 转换为deciaml;
decimal.Parse();
二、int类型转换为0.00格式或者0.0000格式,转换后其实格式是字符串类型
String.Format("{0:f2}", decimal.Parse(111)) -》结果为111.00
String.Format("{0:f2}", decimal.Parse(111)) -》结果为111.0000
C 或 c 货币 Console.Write("{0:C}", 2.5);
Console.Write("{0:C}", -2.5);
$2.50
($2.50)
D 或 d 十进制 Console.Write("{0:D5}", 25); 00025
E 或 e 科学型 Console.Write("{0:E}", 250000); 2.500000E+005
F 或 f 固定点 Console.Write("{0:F2}", 25);
Console.Write("{0:F0}", 25);
25.00
25
G 或 g 常规 Console.Write("{0:G}", 2.5); 2.5
N 或 n 数字 Console.Write("{0:N}", 2500000); 2,500,000.00
X 或 x 十六进制 Console.Write("{0:X}", 250);
Console.Write("{0:X}", 0xffff);
FA
FFFF
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039 (16进制)
12345.ToString("p"); //生成 1,234,500.00%
三、decimal.round()将deciaml类型四舍五入到制定的位数
例如小数点后2位:
如果传入的值为int 类型的 则结果没有补零,即decimal.round(123,2)为123.00