在Javascript中将浮点数转换为2个十进制数
我试图在Javascript中将变量转换为2个小数点,如下所示:在Javascript中将浮点数转换为2个十进制数,javascript,Javascript,我试图在Javascript中将变量转换为2个小数点,如下所示: var num1 = 9.7000000000 var newNum1= Math.floor(parseFloat(num1) * 100) / 100; newNum1= +num1.toFixed(2); 然而,输出结果是9.69 我感谢任何帮助或建议 编辑:谢谢大家,我也试过了 但是,我在以后将其与算术函数一起使用时遇到了问题: if (weight < newNum1) 可以使用.toFixed2和一元加号
var num1 = 9.7000000000
var newNum1= Math.floor(parseFloat(num1) * 100) / 100;
newNum1= +num1.toFixed(2);
然而,输出结果是9.69
我感谢任何帮助或建议
编辑:谢谢大家,我也试过了
但是,我在以后将其与算术函数一起使用时遇到了问题:
if (weight < newNum1)
可以使用.toFixed2和一元加号运算符将字符串转换回数字
const res = +num1.toFixed(2);//9.7
你试过固定吗
toFixed方法将数字转换为字符串,四舍五入到指定的小数位数
变量num1=9.700000000
var newNum1=num1.toFixed2
console.lognewNum1您可以使用toFixed方法 变量num1=9.700000000 var newNum1=num1.toFixed2;
console.lognewNum1 您可以使用以下代码段: const round=n,decimals=0=>Number`${Math.round`${n}e${decimals}`}e-${decimals}`; console.loground9.70000000,2 如果您想将数字修改为2位小数,而不仅仅是显示格式,那么请使用以下解决方案。这里的数字实际上是在内部更改为一个新的数字 如果使用number.toFixed方法,则仅将数字显示为2位小数,但数字不会更改。toFixed用于格式化 //四舍五入至所需数量的设计位置 //@input{number}要舍入的数字 //{小数}小数位数 //@return{float}整数 函数编号RoundDecimalNum,小数{ 返回Math.roundnum*Math.pow10,小数/Math.pow10,小数 } //----测试---- 控制台.lognumberRoundDecimal9.700000000,2//9.7 控制台。lognumberRoundDecimal-0.024641163062896567,3//-0.025 控制台。lognumberRoundDecimal0.9993360575508052,3//0.999 控制台。日志号RoundDecimal1.0020739645577939,3//1.002 控制台。lognumberRoundDecimal0.999,0//1 控制台.lognumberRoundDecimal0.975,0//1 控制台。lognumberRoundDecimal0.975,1//1
console.lognumberRoundDecimal0.975,2//0.98num1已经是一个浮点数,所以parseFloat看起来好像什么都没有做。使用.toFixed2,比如num1.toFixed2,还有为什么9.7*100=969.9999999999可以参考这个答案吗?是否有方法将.toFixed2之后的值转换为可用于大于或小于等算术函数?谢谢!我已经尝试过.toFixed2,但后来在用于算术函数时遇到了问题,例如大于或小于值谢谢!我尝试过.toFixed2,但后来在用于算术函数时遇到了问题,例如大于或小于值您是否像我一样使用了一元加号运算符?这是完成这项工作的最短技巧。但速度是原来的两倍,因为它涉及到从数字到字符串再到数字的类型转换。谢谢!我尝试过.toFixed2,但后来在用于算术函数时遇到了问题,例如,大于或小于值。您可以共享该代码段吗?我包含了一个一元运算符,它成功了,谢谢@xMayank