js中toFixed方法的两个坑

js中toFixed方法的两个坑

    • toFixed返回结果是string,后续使用它计算会错误
    • toFixed返回结果可能出现负零-0.00

toFixed返回结果是string,后续使用它计算会错误

代码演示:
类型判断代码示例:

var stringNum = (100.101).toFixed(2);
var type = typeof stringNum == "string";
console.log(type);  //type为true

后续使用代码示例:
1)加法测试

var addResult = parseFloat(100.001).toFixed(2) + (parseFloat(100.001).toFixed(2));
console.log(addResult); //addResult为100.00100.00

加法结果:为字符串拼接。出现了计算错误。

2)减法测试

var subResult = parseFloat(100.001).toFixed(2) - (parseFloat(100.001).toFixed(2));
console.log(subResult); //subResult为0

减法结果:为正常计算,示例结果未出现问题。是否可能丢失精度有待考证。

2)乘法测试

var multiResult = (parseFloat(100.015).toFixed(2)) * (parseFloat(100.001).toFixed(2));
console.log(addResult); //multiResult为10002

乘法结果:为正常计算,示例结果未出现问题。是否可能丢失精度有待考证。

3)除法测试

var diviResult = (parseFloat(100.015).toFixed(2)) / (parseFloat(100.001).toFixed(2));
console.log(multiResult); //diviResult为1.0002

除法结果:为正常计算,示例结果未出现问题。是否可能丢失精度有待考证。

结论:
故toFixed返回结果是string,若直接用两个string进行加法会出现错误。

toFixed返回结果可能出现负零-0.00

toFixed函数只处理数字位,不处理符号位,有可能会出现-0.0的情况。
例如:
a)问题示例如图
在这里插入图片描述
b)问题代码示例如下

var result = parseFloat((parseFloat(总收入数值1) - parseFloat(直营数值2) - parseFloat(战略合作商数值3)  - parseFloat(战略合作商数值4)).toFixed(2));
//result为-0.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redhat linux 5.3 基于bond的heartbeat

一、设置bond 1.修改网卡cd /etc/sysconfig/network-scripts/cp ifcfg-eth0 ifcfg-bond0vi ifcfg-bond0DEVICEbond0 ONBOOTyes BOOTPROTOnone IPADDR192.168.1.200 NETMASK255.255.255.0 GATEWAY192.168.1.1 USERCTLno TYPEEthernetvi ifcfg-eth0DEVICEeth0 ONBOOTyes BOOTPROT…

外挂:一个很杯具的关键字

在网页挂马泛滥的时代,盗号***不缺少传播到用户电脑的通道,因为只需要找一些与游戏有关的网站,或者在流量大的网站把网马一挂,就不愁钓不着鱼。如今,时代在变迁,安全软件已经成功的解决了网页挂马这个难题&…

java.lang.ClassNotFoundException: retrofit2.Retrofit$Builder解决思路

ClassNotFoundException报错具体问题报错详情推测可能是jar包问题问题总结自定义依赖缺少依赖jar具体问题 Caused by: java.lang.NoClassDefFoundError: retrofit2/converter/simplexml/SimpleXmlConverterFactory报错详情 org.springframework.web.util.NestedServletExcept…

varnish排错

●Troubleshooting varnish&#xff08;varnish排错&#xff09;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />有时候varnish会出错&#xff0c;为了使您知道该检查哪里&#xff0c;您可以检查varnishlog&#xff0c;/var/log…

图像质量评估方法——结构相似性指数(SSIM)

结构相似性指数&#xff08;SSIM&#xff09;是一种全参考图像质量评估方法&#xff0c;用于比较两幅图像的相似性。 SSIM的计算涉及到亮度&#xff08;Luminance&#xff09;、对比度&#xff08;Contrast&#xff09;和结构&#xff08;Structure&#xff09;三个方面的相似性…

OpenSSL加密与证书

加密 身份的验证 &#xff08;非对称加密&#xff09;数据的加密 &#xff08;对称加密&#xff09;数据的完整性 &#xff08;单向加密&#xff09;三者的联合使用会保证数据的安全机制 A&#xff1a;发送者 B&#xff1a;接收方 A的操作&#xff1a; A使用…

asp 正则表达式

这里用的是正则式Set objRegExp New Regexp 建立对象objRegExp.IgnoreCase True 大小写忽略objRegExp.Global True 全局为真objRegExp.Pattern "http://.?" 匹配字段set mmobjRegExp.Execute(str) 执行查找&#xff0c;str为输入参数For Eac…

SQL SERVER重置自动编号列(标识列)

为什么80%的码农都做不了架构师&#xff1f;>>> 两种方法&#xff1a; 一种是用Truncate TRUNCATE TABLE name 可以删除表内所有值并重置标识值 二是用DBCC CHECKIDENT DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) 如dbcc checkident ("bc_pos&q…

VBScript:登录脚本

今日与一些朋友调侃起各自的部门名称&#xff0c;有的IT部已经被用户公认为“挨踢”部&#xff0c;甚至有的IT部的分机号码都已被设置为119, 不知有多少ITPro被沦落为“救火员”&#xff0c;成就了传说中的“挨踢”&#xff0c; 业务与IT部门之间的哪些微秒之外到底在哪里&…

WebService生成客户端代理的工具WSDL参数介绍

wsdl.exe使用 ASP.NET&#xff0c;根据 WSDL 协定文件、XSD 架构和 .disc 发现文档&#xff0c;为 Xml Web Services 客户端和 Xml Web Ser 代码的实用工具。此工具可以与 disco.exe 一起使用。wsdl.exe <选项> <URL 或路径> <URL 或路径>选项 <URL 或路径…

“街坊”×××数字平台,昔日的思想,曾经的努力

“街坊”数字平台“街坊”数字平台由“街坊”网站(http://www.jefun.cn/)、街坊售楼系统软件(http://real.jefun.cn/soft/)、街坊二手房交易系统软件(http://zu8.bj.jefun.cn/soft/)三大部分组成&#xff0c;集成了互联网、电话、短信、软件、GIS等诸位一体的技术与服务手段为用…

postfixadmin 导入数据库出错 ERROR 1062 (23000) at line 29

ERROR 1062 (23000) at line 29: Duplicate entry localhost-postfix-postfix for key 1 解决方法 [rootnagios-server postfixadmin]# mysql -uroot -p111111 <DATABASE_MYSQL.TXT ERROR 1062 (23000) at line 29: Duplicate entry localhost-postfix-postfix for key 1 删…

攻略:三大秘籍让你笑傲IT职场!

IT行业作为处于就业金字塔的顶端行业&#xff0c;一直是众多年轻人的职业梦想。那么&#xff0c;对于怀抱高薪理想的年轻人来说&#xff0c;如何实现他们的IT梦想呢&#xff1f;   秘诀一&#xff1a;认清IT的职业价值   通常人们一提到IT人才&#xff0c;马上就会联想…

SharePoint最简母版页

代码 <%Master language"C#"%><% Register Tagprefix"SharePoint"Namespace"Microsoft.SharePoint.WebControls"Assembly"Microsoft.SharePoint, Version12.0.0.0, Cultureneutral, PublicKeyToken71e9bce111e9429c"%><…

flink实时流遇到的问题排查——部分数据未落库redis问题

flink实时流遇到的问题排查1、技术和环境2、问题表述3、简化的代码4、问题排查思路5、结论6、后续补充1、技术和环境 技术&#xff1a;kafka、zookeeper、DataStream、redis 环境表述&#xff1a;kafka生产者KafkaProducerTest类mock 3条日志后&#xff0c;FlinkDataRealTimeF…

CA0503:无法显示额外的代码分析警告或错误

项目团队正在使用VSS进行协同开发&#xff0c;由于人数较多&#xff0c;一开始为了保证开发工作正常进行&#xff0c;打开了代码分析&#xff0c;强制了签入策略&#xff0c;进行代码分析。当项目进行了一段时间后&#xff0c;每次编译都会产生一个错误“CA0503:无法显示额外的…

VS2008中对.Net 3.5 sp1程序打安装包的前提系统环境的配置

众所周知&#xff0c;.net 程序必须要有frame work才能进行运行&#xff0c;这就需要发布程序时一起进行发布&#xff0c;于是我们需要配置本地机器的环境&#xff0c;而不是让用户去网站上下载这些框架。这里只介绍了操作系统的环境设置&#xff0c;对于打包的过程这里不再说明…

封装自定义的redis切库工具类ByteArrayRedisTemplate,读取byte数组反序列化成List<Object>

封装自定义的redis切库工具类ByteArrayRedisTemplate&#xff0c;读取byte数组反序列化成List&#xff1c;Object&#xff1e;&#xff08;使用lettuce连接池&#xff09;代码环境框架&#xff1a;springboot依赖&#xff1a;spring-boot-starter-data-redis步骤1&#xff1a;注…

随便唠叨下 最近的事情

闵行交大 闵行公安 闵行建交委 闵行大联动 闵行人口办 闵行... 看来到上海后,一直跟闵行有缘啊. 某天早上起来,赶紧洗个衣服,其实也就是几件衣服. 在卫生间冲洗后,晾晒时发现:一只袜子跑了. 望着手中仅剩的一只白袜,我感到很蛋疼.马上找了一遍,无果 这件灵异事件一直困扰着我,导…

redis的zset使用(java)——存取List< Object>

1 需求 要往redis存取List< Object>。 2 条件 1&#xff09;Object&#xff1a;是一个UserEvent对象&#xff0c;对应3个字段&#xff1a; Integer productId; String eventCode; Long timestamp;2&#xff09;要求 每个key里存取对象个数不超过xx个。 超过xx个&…