/**
* 把一个浮点数,以小数点后几位四舍五入
* @param srcValue 要舍位的值
* @param iCount 要舍位到小数点后几位
* @return 四舍五入后的数
*/
function round(srcValuef, iCount) {
var srcValue=srcValuef;
var zs=true;
// 判断是否是负数
if (srcValue<0){
srcValue=Math.abs(srcValue);
zs=false;
}
var iB = Math.pow(10, iCount);
var value1 = srcValue * iB;
var anumber = new Array();
var anumber1 = new Array();
var fvalue = value1; // 保存原值
var value2 = value1.toString();
var idot = value2.indexOf(".");
// 如果是小数
if (idot!=-1){
anumber = srcValue.toString().split(".");
// 如果是科学计数法结果
if (anumber[1].indexOf("e") != -1 || anumber[1].indexOf("E") != -1){
return Math.round(value1)/iB;
}
anumber1=value2.split(".");
if (anumber[1].length <= iCount){
return parseFloat(srcValuef,10);
}
var fvalue3=parseInt(anumber[1].substring(iCount,iCount+1),10);
if (fvalue3 >= 5){
fvalue=parseInt(anumber1[0],10)+1;
} else {
//对于传入的形如111.834999999998 的处理(传入的计算结果就是错误的,应为111.835)
if (fvalue3==4 && anumber[1].length>10 && parseInt(anumber[1].substring(iCount+1,iCount+2),10)==9 ){
fvalue=parseInt(anumber1[0],10)+1;
} else {
fvalue=parseInt(anumber1[0],10);
}
}
}
// 如果是负数就用0减四舍五入的绝对值
if (zs){
return fvalue/iB;
} else {
return 0-fvalue/iB;
}
}
分享到:
相关推荐
在这个“GF_截取浮点数_自定义小数点后位数”文件中,我们可以预见到它包含了一个功能块,专门处理浮点数的截取操作。 该功能块的输入参数可能包括: 1. 浮点数源(Input Real):这是待处理的浮点数,用户需要传递...
题目要求编写一段代码,输入一个浮点数并判断其小数部分有几位。这涉及到对浮点数的内部表示、转换和精度的理解。以下是对这个任务的详细解释: 首先,我们需要知道浮点数在计算机中的存储方式。在C语言中,标准...
例如,可以定义一个名为`InputFloat`的输入浮点数变量和一个名为`DecimalPlaces`的整数变量,表示需要保留的小数位数,以及一个名为`OutputFloat`的输出浮点数变量,存储处理后的新值。 接下来,我们需要在FC块的...
这个方法接收一个双精度浮点数作为输入,并返回四舍五入后的最接近整数的`double`类型值。例如: ```csharp double result = Math.Round(3.5); // 结果为4.0 ``` 2. **Math.Round(double a, int digits)** 此...
在这段代码中,`ROUND(Col002, 1)`表示将`Col002`列中的数值四舍五入到小数点后一位。然后,通过`CONVERT(NUMERIC(8,1), ...)`将结果转换为指定的数据类型,其中`NUMERIC(8,1)`表示整个数字的总长度为8位,小数点后...
假设我们有一个浮点数`f = 0.55555f`,如果想保留两位小数而不四舍五入,可以先将其乘以100,转换为整数`i = (int)(f * 100)`,然后除以100得到`f = (float)(i * 1.0) / 100`。这种方法简单但不适用于需要四舍五入的...
DELPHI最完美的四舍五入无BUG函数,是我花费了2天研究出来的成果,完美保留1-4个小数点,包内提供有EXCEL表取值可以把计算结果复制出来做结果对比,我已经随机取了十几万记录做对比,居然无一值和EXCEL的函数保留有...
根据给定的信息,本文将详细解释如何在编程中实现对浮点数小数位数的精确控制,尤其是在C++环境中如何实现“强制保留小数点后几位”的功能。 ### 强制保留小数点后几位 在计算机科学与程序设计中,处理浮点数时...
2. 精度控制:理解浮点数运算可能出现的精度问题,如四舍五入误差。 3. 溢出检测:检查运算结果是否超出浮点数的表示范围,防止错误的计算结果。 4. 异常处理:设置适当的错误处理机制,如除以零或非法数据输入等...
它接受一个双精度浮点数`t`和一个整数`n`作为参数,`t`代表要进行四舍五入操作的数字,而`n`则表示四舍五入到小数点后第`n`位。函数内部首先利用`n_hundred()`函数计算出10的`n`次幂,然后将其与`t`相乘,转换成整数...
EZCP指令用于将一个源操作数与一个指定的浮点数范围进行比较,判断源操作数是否位于该范围内,并将结果以ON/OFF的形式反映在目标操作数上。这个指令通常用于控制系统中,根据反馈信号的范围来判断设备的工作状态。 ...
对于四舍五入来说,可以通过匹配小数点后的第三位及其之后的所有数字,并用前两位小数代替它们。 **示例代码:** ```javascript window.onload = function () { var a = "23.456322"; var aNew; var re = /([0-9...
可以采用四舍五入、向下取整或向上取整等策略,这些都需要在编程时明确指定。 4. **PLC指令应用**:在西门子S7-1200中,可以使用算术运算指令(如MUL、DIV)和转换指令(如CONV)来执行这些操作。同时,可能还需要...
`strconv.FormatFloat`接受一个浮点数、格式类型(如`'f'`)、精度(小数点后位数)和浮点数的大小(32位或64位),但可能会保留小数点后的零。而`fmt.Sprintf`中的`%.2f`会保留两位小数,`%g`则会自动去掉小数点后...
在C#编程语言中,处理浮点数时经常会遇到需要保留特定小数点后位数的需求。例如,在财务计算、数据分析以及其他对精度有严格要求的应用场景中,如何精确控制数值的小数部分显示就显得尤为重要。本文将围绕“C# ...
它首先使用 `parseFloat` 转换为浮点数,然后乘以100,使用 `Math.round()` 进行四舍五入,最后除以100得到保留两位小数的数。 2. 强制保留两位小数的方法: 当需要保留两位小数,即使数值为整数时,也需要在末尾...
根据 IEEE 754 标准,有几种不同的舍入策略,如四舍五入、向零舍入、向上舍入和向无穷舍入等。选择合适的舍入策略以确保结果的精度。 4. **二进制到16进制转换**:将标准化后的二进制浮点数转换为16进制。这可以...
例如,如果要保留两位小数,可以先乘以100,四舍五入后,再除以100。这种方法能较好地处理精度问题,但需要手动操作转换。 最后一种方法是使用Number对象的toFixed()方法。toFixed()方法可以将数值转换成保留指定...
在JavaScript中,保留小数点后几位的数值是一个常见的需求,无论是在前端展示数据还是在进行财务计算时,合理地控制数字的精度都是非常重要的。JavaScript提供了几种方法来实现这一功能,本篇文章主要介绍了如何使用...
例如,在8位二进制数中,若小数点被固定在最低有效位(LSB)前一位,则该数被称为一个8位定点小数。定点数的优点在于运算简单、快速,缺点是在表示大范围数值时不够灵活。 **2. 浮点数** 浮点数是一种能够表示非常...