decimal 保留n位小数

decimal 保留2位小数2008-05-07 10:52Decimal a=10;
DeciMal b=3;
Decimal c=a/b;

得出 3.3333333333333333333333333
而这里我只想得出3.33

我只能用Convert.ToDecimal(c.ToString("F2"))
这样的办法
但显然这是一种笨办法
------------------------------------
Math.Round(c,2)
系统自动保留2为小数,且四舍五入
--------------------------------------
Decimal a = 10;
Decimal b = 3;
Decimal c = a/b;
Console.WriteLine("{0:F2}", c);
Console.WriteLine(c.ToString("0.00"));
-----------------------------------------------
Decimal a = 10;
Decimal b = 3;
Decimal c = Decimal.Round(a/b, 2);
-------------------------------------------------
Decimal a = 10;
Decimal b = 3;
Decimal c = Decimal.Round(a/b, 2);

在 Python 中,保留 n 小数有多种实现方法: ### 四舍五入方法 - **round 函数**:`round()` 函数可以对数字进行四舍五入保留指定的小数数。不过,它不完全是按照四舍五入的原则来进的,其保留值将保留到离上一更近的一端(四舍六入),如果距离两端一样远,则会保留到偶数的一边,因此使用时需要注意。示例代码如下: ```python n = 1.2345 dn = 2 result = round(n, dn) print(result) ``` - **格式化字符串**:使用 `%.nf` 格式化字符串可以实现四舍五入保留 n 小数,其中 `n` 为要保留小数数。示例代码如下: ```python n = 1.2345 print("%.2f" % n) ``` - **numpy.around 函数**:`numpy.around()` 函数可以对单个数字或数组进行四舍五入保留指定的小数数。示例代码如下: ```python import numpy as np n = 1.2345 dn = 2 result = np.around(n, dn) print(result) ns = [1.234, 2.345, 3.456] result_array = np.around(ns, dn) print(result_array) ``` - **Decimal 类**:使用 `decimal` 模块中的 `Decimal` 类可以精确控制小数保留数。示例代码如下: ```python from decimal import Decimal a = 2.3456 n = 3 result = Decimal(a).quantize(Decimal('0.' + '0' * n)) print(result) ``` ### 无四舍五入方法 - **字符串切片**:通过将数字转换为字符串,然后使用字符串切片的方式截取指定的小数数。示例代码如下: ```python n = 1.2345 dn = 2 result = str(n).split('.')[0] + '.' + str(n).split('.')[1][:dn] print(result) ``` - **re 模块**:使用 `re` 模块的 `findall` 函数,通过正则表达式匹配指定的小数数。示例代码如下: ```python import re n = 1.2345 dn = 2 pattern = r"\d{1,}?\.\d{" + str(dn) + "}" result = re.findall(pattern, str(n)) print(result[0]) ``` ### 舍弃小数方法 可以使用 `math` 库的 `floor` 函数来丢弃浮点数后面的小数。示例代码如下: ```python import math x = 1.2 result_float = math.floor(x) result_int = int(math.floor(x)) print(result_float) print(result_int) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值