关于deciaml的类型转换问题

 最近在开发商城的功能,遇到了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

原文地址:https://www.cnblogs.com/loveni/p/3062331.html