c#中怎样使decimal类型变量保留固定小数位?
decimal b=2.22;
decimal c=a*b;
这样,c就有4个小数位,怎样使变量c四舍五入保留两个小数位? 展开
decimal a=1.11;
decimal b=2.22;
decimal c=a*b;
decimal d = System.Decimal.Round(c, 2);
c Decimal 对象;
2是精确到小数位数。
Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位。例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。
例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。
当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 convert 或是 cast 进行转换。
provider.PercentDecimalDigits = 2;//小数点保留几位数.
provider.PercentPositivePattern = 2;//百分号出现在何处.
double result = (double)1 / 3;//一定要用double类型.
Response.Write(result.ToString("P", provider));
扩展资料
c#中使decimal类型变量保留固定小数位的测试代码及结果:
static void Main(string[] args)
{
decimal d = 1.23456789M;
for (int i = 0; i <= 10; i++)
{
Console.WriteLine("{0}", DecimalHelper.CutDecimalWithN(d, i));
}
for (int i = 0; i <= 10; i++)
{
Console.WriteLine("{0}", Decimal.Round(d, i));
}
}
C#中decimal数据类型以截断的方式保留指定的小数位数
/// <summary>
/// 将小数值按指定的小数位数截断
/// </summary>
///
<param name="d">要截断的小数</param>
/// <param
name="s">小数位数,s大于等于0,小于等于28</param>
///
<returns></returns>
public static decimal ToFixed(decimal d, int
s)
{
decimal sp = Convert.ToDecimal(Math.Pow(10, s));
if (d <
0)
return Math.Truncate(d) + Math.Ceiling((d - Math.Truncate(d)) * sp) / sp;
else
return Math.Truncate(d) + Math.Floor((d - Math.Truncate(d)) * sp) /
sp;
}
参考资料来源:百度百科 - Decimal
decimal a=1.11;
decimal b=2.22;
decimal c=a*b;
decimal d = System.Decimal.Round(c, 2);
c Decimal 对象
2是精确到小数位位数。
Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位。例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。
例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。
当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 convert 或是 cast 进行转换。
扩展资料:
关于decimal位数
p (有效位数)
可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。
s (小数位数)
小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效位数而不同。
参考资料:百度百科-Decimal
decimal a=1.11;
decimal b=2.22;
decimal c=a*b;
decimal d = System.Decimal.Round(c, 2);
c Decimal 对象;
2是精确到小数位位数。
Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位。例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。
例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。
当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 convert 或是 cast 进行转换。
扩展资料
关于decimal位数
p (有效位数)
可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。
s (小数位数)
小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效位数而不同。
decimal b=2.22;
decimal c=a*b;
decimal d = System.Decimal.Round(c, 2);
c Decimal 对象
2是精确到小数位位数....
要显示百分比的话decimal.toString("0.00%");