精华内容
下载资源
问答
  • VC++浮点数四舍五入保留两位小数VC++浮点数四舍五入保留两位小数
  • js 四舍五入函数 toFixed() 里面的参数就是保留小数的位数 var temp = 66.666; var db = temp.toFixed(2); 如果数据为string,需要转换 string * 1 完成数据类型转换 var temp = "66.666"; var db...

    前端:

     js 四舍五入函数   toFixed() 里面的参数就是保留小数的位数

       
       var temp = 66.666;
       var db = temp.toFixed(2);    
    
    

     如果数据为string,需要转换   string * 1  完成数据类型转换

       
       var temp = "66.666";         
       var db = (temp*1).toFixed(2);
       
    

     

    后端:

    public static void main(String[] args) {
    		DecimalFormat df = new DecimalFormat("0.00"); 
    		System.out.println(df.format(12.312));   //12.31
    		System.out.println(df.format(12.315));   //12.32
    	}

     

    展开全文
  • Golang四舍五入保留两位小数

    千次阅读 2020-06-27 15:44:07
    Golang四舍五入保留两位小数

    Sprintf

    四舍六入:

    	value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", 9.824), 64)
    	fmt.Println(value) //9.82
    
    	value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", 9.826), 64)
    	fmt.Println(value) //9.83
    

    第三位为5且5之后有有效数字,满足五入:

    	value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", 9.8251), 64)
    	fmt.Println(value) //9.83
    
    	value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", 9.8351), 64)
    	fmt.Println(value) //9.84
    

    第三位为5且5之后没有有效数字:
    网上有人说,第二位为奇数则进位,第二位为偶数则舍去,例如:

    	value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", 9.825), 64)
    	fmt.Println(value) //9.82
    
    	value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", 9.835), 64)
    	fmt.Println(value) //9.84
    

    但是:

    	value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", 9.815), 64)
    	fmt.Println(value) //9.81 居然舍去了
    
    	value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", 9.845), 64)
    	fmt.Println(value) //9.85 居然进位了
    

    所以,如果想满足正常的四舍五入逻辑,最好不要使用Sprintf处理。

    math.Trunc

    	fmt.Println(math.Trunc(9.815*1e2+0.5)*1e-2) //9.82
    	fmt.Println(math.Trunc(9.825*1e2+0.5)*1e-2) //9.83
    	fmt.Println(math.Trunc(9.835*1e2+0.5)*1e-2) //9.84
    	fmt.Println(math.Trunc(9.845*1e2+0.5)*1e-2) //9.85
    

    以上结果显示符合四舍五入,但是偶尔会出现精度问题:

    	fmt.Println(math.Trunc(3.3*1e2+0.5)*1e-2) //3.3000000000000003
    	fmt.Println(math.Trunc(3.3000000000000003*1e2+0.5) * 1e-2) //3.3000000000000003
    

    同样使用Trunc,稍作调整:(此方案被大家提醒后发现确实存在问题,文末有修改方案

    	n10 := math.Pow10(2)
    	fmt.Println(math.Trunc((9.815+0.5/n10)*n10) / n10) //9.82
    	fmt.Println(math.Trunc((9.825+0.5/n10)*n10) / n10) //9.83
    	fmt.Println(math.Trunc((9.835+0.5/n10)*n10) / n10) //9.84
    	fmt.Println(math.Trunc((9.845+0.5/n10)*n10) / n10) //9.85
    	fmt.Println(math.Trunc((3.3+0.5/n10)*n10) / n10) //3.3
    	fmt.Println(math.Trunc((3.3000000000000003+0.5/n10)*n10) / n10) //3.3
    

    符合四舍五入规则。

    如果要固定显示两位小数,需转换为string类型,前提是传入的数值,已经做过两位小数处理,否则依旧有进位问题:

    	value := strconv.FormatFloat(3, 'f', 2, 64)
    	fmt.Println(value) //3.00
    	
    	value = strconv.FormatFloat(3.3, 'f', 2, 64)
    	fmt.Println(value) //3.30
    
    	value = strconv.FormatFloat(9.815, 'f', 2, 64)
    	fmt.Println(value) //9.81 被舍去
    
    	value = strconv.FormatFloat(9.82, 'f', 2, 64)
    	fmt.Println(value) //9.82
    

    内容修改

    错误示例:

    n10 := math.Pow10(2)
    fmt.Println(math.Trunc((129.975+0.5/n10)*n10) / n10) // 129.97
    fmt.Println(math.Trunc((34423.125+0.5/n10)*n10) / n10) // 34423.12
    

    代码修改:

    package main
    
    import (
    	"fmt"
    	"github.com/shopspring/decimal"
    )
    
    func main() {
    	v1, _ := decimal.NewFromFloat(9.824).Round(2).Float64()
    	v2, _ := decimal.NewFromFloat(9.826).Round(2).Float64()
    	v3, _ := decimal.NewFromFloat(9.8251).Round(2).Float64()
    	fmt.Println(v1, v2, v3)
    
    	v4, _ := decimal.NewFromFloat(9.815).Round(2).Float64()
    	v5, _ := decimal.NewFromFloat(9.825).Round(2).Float64()
    	v6, _ := decimal.NewFromFloat(9.835).Round(2).Float64()
    	v7, _ := decimal.NewFromFloat(9.845).Round(2).Float64()
    	fmt.Println(v4, v5, v6, v7)
    
    	v8, _ := decimal.NewFromFloat(3.3).Round(2).Float64()
    	v9, _ := decimal.NewFromFloat(3.3000000000000003).Round(2).Float64()
    	v10, _ := decimal.NewFromFloat(3).Round(2).Float64()
    	fmt.Println(v8, v9, v10)
    
    	v11, _ := decimal.NewFromFloat(129.975).Round(2).Float64()
    	v12, _ := decimal.NewFromFloat(34423.125).Round(2).Float64()
    	fmt.Println(v11, v12)
    }
    
    

    结果如下:

    9.82 9.83 9.83
    9.82 9.83 9.84 9.85
    3.3 3.3 3
    129.98 34423.13
    

    公众号:李田路口

    展开全文
  • flutter 四舍五入保留两位小数

    千次阅读 2021-03-26 16:09:13
    四舍五入保留两位小数: double value=1265.2567; value.toStringAsFixed(2) 结果为: value = 1265.26 保留两位小数: formatNum(double num,int postion){ if((num.toString().length-num.toString()....

    四舍五入保留两位小数:

    double value=1265.2567;
    value.toStringAsFixed(2)
    
    结果为:
    value = 1265.26
    

    保留两位小数:

      String formatNum(double num,int postion){
        if((num.toString().length-num.toString().lastIndexOf(".")-1)<postion){
          return num.toString().substring(0,num.toString().lastIndexOf(".")+postion+1).toString();
        }else{
          return num.toString().substring(0,num.toString().lastIndexOf(".")+postion+1).toString();
        }
      }
    

    调用:

    print('小数点后有几位小数   ${formatNum(85.946, 2)}');
    

    结果如下:
    在这里插入图片描述

    或:

    print('小数点后有几位小数   ${formatNum(85.9, 2)}');
    

    结果如下:
    在这里插入图片描述

    展开全文
  • C#.NET,JAVASCRIPT数字进行四舍五入保留两位小数
  • 情景:项目中遇到统计的一些查询,结果就会遇到带有小数的结果,一般要求对结果进行四舍五入保留两位小数。 解决方式有以下两种: 方式一:使用 round(m,2)函数 //注:m为所需处理字段值,2为保留几位小数 ...

    情景:项目中遇到统计的一些查询,结果就会遇到带有小数的结果,一般要求对结果进行四舍五入保留两位小数。

    解决方式有以下两种:

    方式一:使用 round(m,2)函数 //注:m为所需处理字段值,2为保留几位小数

    select round(AVG(score),2) as average  from student
    //round(89.457,2) 平均数89.457 四舍五入89.46
    

    方式二:使用convert(m,decimal(10,2))函数 //注:m为所需处理字段值,2为保留几位小数

    select convert(AVG(score),decimal(10,2)) as average  from student
    //convert(89.457,decimal(10,2)) 平均数89.457 四舍五入89.46
    

    额外补充:常用的如AVG()为统计平均数函数,SUM()为求和函数,MAX()为查询最大函数,MIN()为查询最小函数和date_format(date, format)时间格式转换。

    Ok就到这里啦( ^ - ^ )

    展开全文
  • js 四舍五入保留两位小数

    千次阅读 2018-09-18 15:02:38
    js有一个toFixed(n)方法,即四舍五入保留n位小数 示例: var a = 22.3344 //undefined a.toFixed(2) //&quot;22.33&quot; a = 22.3355 //22.3355 a.toFixed(2) //&quot;22.34&quot;
  • Oracle中,利用sql语句中的函数实现保留两位小数四舍五入保留两位小数; select trunc(1.23856789,2) from dual round(m,n) 可以四舍五入 trunc(m,n) 直接丢弃,不四舍五入 转载于:...
  • go浮点数四舍五入保留两位小数 func DecimalRoundFix2Str(f float64) string { f1 := math.Trunc(f*1e2+0.5) * 1e-2 value := strconv.FormatFloat(f1, 'f', 2, 64) return value } func DecimalRoundFix2(f ...
  • 【C语言】将一个浮点数四舍五入保留两位小数

    万次阅读 多人点赞 2019-09-13 00:25:49
    【C语言】将一个浮点数四舍五入保留两位小数 第一次做这个题目的时候,我用了一个比较傻的方法:利用强制类型转换可以得到该浮点数的整数部分,然后分别取出十分位、百分位、千分位上的数字,判断千分位上的数字是否...
  • /// <summary> /// 不四舍五入保留两位小数 /// </summary> /// <param name="money"></param> /// <returns></returns> private doubl...
  • java 四舍五入保留两位小数

    千次阅读 2018-09-04 16:35:38
    将其结果四舍五入保留两位小数,写了个方法 主要用到 java.math.BigDecimal这个类 /**  *   * @param js 缴费基数  * @param rate 缴费比例  * @return  */  private static double payMoney(...
  • 利用Python3四舍五入保留两位小数

    千次阅读 2020-05-16 11:36:17
    说明:利用Python3四舍五入保留两位小数,曾踩过的坑分享给大家,希望能够共勉! 坑1:字符串格式化 a = 1.234 print("%.2f" % a) # 1.23 非常开心成功了,但是,,, b = 1.125 print("%.2f" % b) # 1.12 ...
  • iOS 四舍五入保留两位小数

    千次阅读 2017-05-09 11:32:27
    通常我们四舍五入输出可能你会用NSString stringWithFormat函数%.2f方式,但是...先说一下最后确定使用的方法:(四舍五入保留两位小数) -(float)roundFloat:(float)price{  return roundf(price*10
  • php四舍五入保留两位小数,自动补齐0

    千次阅读 2018-10-30 09:39:00
    php四舍五入保留两位小数 很简单 方法一 (自动补齐0) e...
  • C++负数小数如何不按四舍五入保留两位小数。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • 最近快被ios的四舍五入的问题给烦死了,不是说他的四舍五入不好用,而是这个四舍五入有时可能不是四舍五入,而是四舍六入。...这个基本能够确保最后是四舍五入并且能保留两位小数。 下面再说说这个曲折的过
  • element ui表格渲染数据时,四舍五入保留两位小数 写一个过滤器 filters: { rounding (value) { if(value || value === 0) { //这个判断是为了防止数据为空,页面渲染为NAN return Number(value).toFixed(2) } ...
  • 算法如果要求将数据h精确到小数点后面的第n则需要对n+1进行运算方法是将该数乘以10的n+1次方后加5然后除以10并强制转换变量类型为长整型再将该数强制转换类型为浮点型再除以10的n次方 long t; t=(h*10n+1+5)/10;...
  • float四舍五入保留两位小数注意的地方 最近在codewars做了一道非常简单的题目,但是它却花了我20来分钟,虽然最后解决了,但是中间发觉对于java的基础实在不行,回去要好好补一下 不说这么多,上题目:就是写一个...
  • //四舍五入,不保留小数; float gr = 8; float gc = 3; DecimalFormat df1 = new DecimalFormat("0");//格式化小数,不足的补0 ...String gaver = df1.format((gr/gc... //四舍五入保留两位小数; float g1 = 111;
  • import java.util.*; public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); double n = 1.199; System.out.printf("...//四舍五入 System.out.p...
  • 四舍五入保留两位小数 使用BigDecimal类里的setScale方法进行四舍五入 过时替换 BigDecimal bd = new BigDecimal(1.234); //这个方法中划线,已经过时了 double result1 = bd.setScale(2, BigDecimal.ROUND_...
  • java中double类型精度保留小数点后两位,同时满足四舍五入,代码如下: String str = "86.64566666"; BigDecimal bd = new BigDecimal(Double.parseDouble(str)); double d = bd.setScale(2, BigDecimal.ROUND_HALF...
  • <span>{{ Math.floor(scope.row.budgetAmount * 100) / 100 }}</span> <span>{{ Math.round(scope.row.budgetAmount * 100) / 100 }}</span>//四舍五入并且保留两位小数
  • float a = 123.2334f; float b = (float)(Math.round(a*100))/100;(这里的100就是2小数点,如果要其它,如4,这里个100改成10000)
  • 在开发中我们经常需要将数值数据进行四舍五入保留相关小数。我总结了常用的三种转换方式及其对应的特点。 方式一:使用Math.Round(double,int) //常规方法:使用Math.Round(), double num1 = Math.Round(2.455,2);...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,232
精华内容 14,892
关键字:

四舍五入保留两位小数