首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HTML CSS 和 JavaScript 文本语音转换

创建一个将任何文本转换为语音项目可能是一个有趣且可以提升技能项目,特别是在学习 HTML、CSS 和 JavaScript 过程。...在这篇博客,您将学到如何使用 HTML、CSS 和 JavaScript 构建一个文本语音转换器。...HTML、CSS 和 JS 文本语音转换器教程使用 JavaScript 创建文本语音转换步骤要使用 HTML、CSS 和纯 JavaScript 创建一个文本语音转换器,请按照以下逐行步骤进行...首先,将以下代码粘贴到你 index.html 文件:<!...,或者你代码没有按预期工作,你可以通过点击下载按钮免费下载此文本语音转换源代码文件,你还可以通过点击查看演示按钮查看此卡片滑块实时演示。

26420
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript实现正整数十进制二进制

前端开发在日常工作,基本上很难遇到需要进行对我们常用十进制转换需求,但是作为计算器原理重要一部分,如果有时间不妨搞清楚,对日后阅读源码或者面试也是有帮助。...可以查看基维百科了解各种进制规则。 基维百科 简单实现正整数十进制转换二进制 十进制转换二进制是有一个公式,大家可以记住这个公式。...这是因为在JavaScript,数字长度超过21位时,将会自动将数字转换为科学计数法来表示。...首先我们需要实现一个大数除法函数,但是这个函数并不是完整去实现除法计算,因为在十进制二进制情况下,并不需要去计算小数点后面的结果,只需要知道整数商和余数即可,所以在进行大数相除时候,当计算到需要小数点时候...以后有空再写十进制浮点数和负数转二进制以及二进制转换十进制实现方式吧。

770120

为什么0.1+0.2不等于0.3?

打开你 Python,输入「0.1+0.2=」,结果是多少?0.30000000000000004 对不对?为什么结果不是 0.3?本文作者给出了详细解释。...但是,在光怪陆离计算世界,运算方式却大相径庭。 我最近开始用 JavaScript 进行编码,在阅读数据类型时,我注意 0.1 + 0.2 不等于 0.3 奇怪行为。...在这之前,我们先来了解一个小概念:为了实现计算,数字是如何表示?极小数和极大数通常用科学计数法表示,即: ? 同样,如果一个用科学计数法书写数字小数点前有一个非零十进制数,则该数字是标准化写法。...这种格式以 64 位存储数字,其中数字(分数)存储在位 0 51 ,指数存储在位 52 62 ,符号存储在位 63 。 ? IEEE754 双精度标准。...第一步是将十进制 0.1 转换二进制 0.1。首先将 0.1 乘以 2,然后将小数点前数字分离出来,得到其相应二进制数。 ? 重复此操作至 64 位。

1.7K20

原来编程语言是这么算……

打开你 Python,输入「0.1+0.2=」,结果是多少?0.30000000000000004 对不对?为什么结果不是 0.3?本文作者给出了详细解释。...但是,在光怪陆离计算世界,运算方式却大相径庭。 我最近开始用 JavaScript 进行编码,在阅读数据类型时,我注意 0.1 + 0.2 不等于 0.3 奇怪行为。...在这之前,我们先来了解一个小概念:为了实现计算,数字是如何表示?极小数和极大数通常用科学计数法表示,即: ? 同样,如果一个用科学计数法书写数字小数点前有一个非零十进制数,则该数字是标准化写法。...这种格式以 64 位存储数字,其中数字(分数)存储在位 0 51 ,指数存储在位 52 62 ,符号存储在位 63 。 ? IEEE754 双精度标准。...第一步是将十进制 0.1 转换二进制 0.1。首先将 0.1 乘以 2,然后将小数点前数字分离出来,得到其相应二进制数。 ? 重复此操作至 64 位。

1.1K10

你不会知道编程语言会把0.1+0.2算成多少

开你 Python,输入「0.1+0.2=」,结果是多少?0.30000000000000004 对不对?为什么结果不是 0.3?本文作者给出了详细解释。...但是,在光怪陆离计算世界,运算方式却大相径庭。 我最近开始用 JavaScript 进行编码,在阅读数据类型时,我注意 0.1 + 0.2 不等于 0.3 奇怪行为。...在这之前,我们先来了解一个小概念:为了实现计算,数字是如何表示?极小数和极大数通常用科学计数法表示,即: ? 同样,如果一个用科学计数法书写数字小数点前有一个非零十进制数,则该数字是标准化写法。...这种格式以 64 位存储数字,其中数字(分数)存储在位 0 51 ,指数存储在位 52 62 ,符号存储在位 63 。 ? IEEE754 双精度标准。...第一步是将十进制 0.1 转换二进制 0.1。首先将 0.1 乘以 2,然后将小数点前数字分离出来,得到其相应二进制数。 ? 重复此操作至 64 位。

1.2K20

一个函数让你看懂 Why 0.1+0.2!=0.3

没有将小数 二进制转换十进制方法,于是手动实现了一个。...先来一个简单结论 计算机中所有的数据都是以 二进制存储,所以在计算时计算机要把数据先转换二进制进行计算,然后在把计算结果转换十进制。...由上面的代码不难看出,在计算 0.1+0.2时, 二进制计算发生了精度丢失,导致再转换十进制后和预计结果不符。 其实有些标题党了,一个函数并不能让你深入理解,还得继续看下面......Why JavaScript计算(0.1+0.2)二进制和我们自己计算(0.1+0.2)二进制结果不一样呢???...位规范限制: 指数位能表示大数字: 1023(十进制) 尾数位能表达大数字即尾数位都位 1情况 所以JavaScript能表示大数字即位 1.111...X 21023 这个结果转换十进制

61820

小 bug 引发大灾难,0.1 + 0.2 结果竟然是……

没错 ,不管是在 Python,还是 C++、Java、JavaScript 等其他语言中,都是 False。 为什么会出现这样结果?...首先我们要了解,在计算机存储类型为二进制十进制 0.1 与 0.2 在计算机中会已二进制形式表示,规则如下: 十进制小数转换二进制小数采用”乘2取整,顺序排列”法。...具体做法是:用2乘十进制小数,可以得到积,将积整数部分取出,再用2乘余下小数 部分,又得到一个积,再将积整数部分取出,如此进行,直到积小数部分为零,或者达到所要求精度为止。...所以当两个存在误差数相加,其结果也必定会出现误差,这就解释了在计算机为什么 0.1 + 0.2 不等于 0.3。...避免在同一个表达式中使用相差太大或太小数值。将很小数值和很大数值相加,小数值很可能被当作 0。

86790

Double为什么会丢失精度

3.走进失真之精度 计算机在处理数据都涉及数据转换和各种复杂运算,比如,不同单位换算,不同进制(如二进制十进制)换算等,很多除法运算不能除尽,比如10÷3=3.3333.....无穷无尽,而精度是有限...对于十进制小数转换二进制采用乘2取整法进行计算,取掉整数部分后,剩下小数继续乘以2,直到小数部分全为0。...但是,它们不能提供完全准确结果,因此不能用于需要计算精确结果场景。当浮点数达到一定大数时自动使用科学计数法。这样表示只是近似真实数而不等于真实数。...当十进制小数转换二进制时,也会出现无限循环或超出浮点数尾部长度。 4.那我们怎么用BigDecimal来解决?...double问题是从小数点转换二进制丢失精度,二进制丢失精度。BigDecimal在处理时候把十进制小数扩大N倍让它在整数上进行计算,并保留相应精度信息。

2.2K30

java面试官:Double为什么会丢失精度?解决方法?答出给1万月薪

3.走进失真之精度 计算机在处理数据都涉及数据转换和各种复杂运算,比如,不同单位换算,不同进制(如二进制十进制)换算等,很多除法运算不能除尽,比如10÷3=3.3333.....无穷无尽,而精度是有限...对于十进制小数转换二进制采用乘2取整法进行计算,取掉整数部分后,剩下小数继续乘以2,直到小数部分全为0。...但是,它们不能提供完全准确结果,因此不能用于需要计算精确结果场景。当浮点数达到一定大数时自动使用科学计数法。这样表示只是近似真实数而不等于真实数。...当十进制小数转换二进制时,也会出现无限循环或超出浮点数尾部长度。 4.那我们怎么用BigDecimal来解决?...double问题是从小数点转换二进制丢失精度,二进制丢失精度。BigDecimal在处理时候把十进制小数扩大N倍让它在整数上进行计算,并保留相应精度信息。

19.4K30

JavaScript之0.1+0.2=0.30000000000000004计算过程

二进制来存储 number ---- 十进制与 Double 相互转换公式如下: V:表示十进制结果 SEM:表示双精度浮点数结果(就是 S 拼 E 拼 M,不是相加) 2^(-4) *...在线转换工具:在线转换工具(BigNumber时不准确)(https://tool.oschina.net/hexconvert/) ② 将1001100110011循环0011转为 52 位二进制...存储真实结构为: 0011111110111001100110011001100110011001100110011001100110011010 通过 Double相互转换十进制(它是我找得到有效位数最多网站...,导致了计算结果偏差,我制作了一张流程图帮助大家理解: 显然,JavaScript 是按照「验证方法二」去计算 0.1+0.2 ,我有两个疑问: ① 为什么不用误差更小「验证方法一」呢?...网上找关于0.1+0.2=0.30000000000000004文章都是写「验证方法二」,我也不知道自己「验证方法一」是否有错误,恳请看到读者加以指正。

1.1K30

JavaScript 浮点数之迷:0.1 + 0.2 为什么不等于 0.3?

1. “0.1” 转为二进制 不知道怎么转换,参考上面 先修知识 十进制小数转二进制 0.000110011001100110011(0011) // 0011 将会无限循环 2....二进制浮点数科学计数法表示 任何一个数都可以用科学计数法表示,0.1 二进制科学计数法表示如下所示: 以上结果类似于十进制科学计数法表示: 3....转换十进制如下所示: 0.30000000000000004 只有 JavaScript 存在吗?...因为它很难理解,但是一旦你掌握了它,能让你更深刻认识其中存储、运算机制,从而理解结果为什么是 0.30000000000000004。...最后做个总结,由于计算机底层存储都是基于二进制,需要事先由十进制转换二进制存储与运算,这整个转换过程,类似于 0.1、0.2 这样数是无穷尽,无法用二进制数精确表示。

3.7K31

【JS进阶】你真的掌握变量和类型了吗

5.1 精度丢失 计算机中所有的数据都是以二进制存储,所以在计算时计算机要把数据先转换二进制进行计算,然后在把计算结果转换十进制。...由上面的代码不难看出,在计算0.1+0.2时,二进制计算发生了精度丢失,导致再转换十进制后和预计结果不符。...JavaScript能表示大数字 由与IEEE 754双精度64位规范限制: 指数位能表示大数字:1023(十进制) 尾数位能表达大数字即尾数位都位1情况 所以JavaScript能表示大数字即位...1.111...X 21023 这个结果转换十进制是1.7976931348623157e+308,这个结果即为Number.MAX_VALUE。...变量在内存具体存储形式,可对应实际场景 搞懂小数计算不精确底层原因 了解可能发生隐式类型转换场景以及转换原则 掌握判断JavaScript数据类型方式和底层原理 文中如有错误,欢迎在评论区指正

3.2K30

进制之间如何转换

二、十进制二进制转换 在最开始接触编程时总要学习一下和二进制转换,因为这是计算机在工作时使用进制,很多位运算操作也是在二进制下进行,所以我们必须要掌握与二进制相关进制转换。 1....二进制转换十进制 将一个其他进制数转换十进制过程其实就是根据相应进制来进行换算。在转换之前我们先来看一下我们最熟悉不过十进制,比如:1367。...方法就是从右至左,将乘得结果进行相加。同时,我们注意,只要末位是0,那么这个数一定可以被2整除,其他进制也有这个规律(就像个位为零数一定可以被10整除)。 2....十进制转换二进制 常规方法: 将一个十进制转换为一个二进制过程其实就是一个不断算除法和记录余数过程,既然是转换二进制,那么我们除数就是2,具体过程如下:10进制数:37 -> 二进制结果:...小数字快速转换法: 对于不是很大数字其实有一种比较快转换办法,但是前提是我们要对2次方运算结果比较熟悉,基本上记忆210次方为1024就足够用了。

80521

JavaScript 浮点数陷阱及解法

众所周知,JavaScript 浮点数运算时经常遇到会 0.000000001 和 0.999999999 这样奇怪结果,如 0.1+0.2=0.30000000000000004、1-0.9=0.09999999999999998...本文帮你理清这背后原理以及解决方案,还会向你解释JS大数危机和四则运算中会遇到坑。 浮点数存储 首先要搞清楚 JavaScript 如何存储小数。...注意以上公式遵循科学计数法规范,在十进制是为0<M<10,二进行就是0<M<2。也就是说整数部分只能是1,所以可以被舍去,只保留后面的小数部分。...如 4.5 转换二进制就是 100.1,科学计数法表示是 1.001*2^2,舍去1后 M = 001。E是一个无符号整数,因为长度是11位,取值范围是 0~2047。...首先,理论上用有限空间来存储无限小数是不可能保证精确,但我们可以处理一下得到我们期望结果

1.7K30

JavaScript 数据类型转换完全攻略

JavaScript 能够根据运算环境自动转换变量类型。在自动转换JavaScript 一般根据运算类型环境,按需进行转换。...因此,对于八进制、二进制或十六进制数字,toString() 方法都会先把它们转换十进制数值之后再输出。...var a = "123abc"; console.log(parseInt(a,16)); //返回十进制整数1194684 【实例2】下面代码把二进制、八进制和十进制数字字符串转换十进制整数...乘以 1 之后,结果没有发生变化,但是值类型被转换为数值。如果值无法被缓缓为合法数值,则返回 NaN。...下面代码创建 3 个不同类型对象,然后参与逻辑与运算。因为不管其值是什么,凡事对象转换为布尔值都为 true,所以才看到不同显示结果

21930

【干货】小白最容易放弃二进制详解!

二进制十进制: 把每个数位单独转换后把所有的转换结果求和 例:01001110 = 2^6 + 2^3 + 2^2 + 2^1 = 64 + 8 + 4 + 2 = 78 十进制二进制: 方法一:(...不适用于处理大数字)先把十进制数字拆分成多个2整数次方之和, 然后对每个结果单独转换, 最后其他数位补0。...结果: 152 106 152 152 三、十六进制 3.1 所有数位从右向左每四个数位分成一组, 每组用一个字母替换就得到对应十六进制表示方式, 先把每组转换十进制, 转换结果如果在09之间则用阿拉伯数字字符替换...: 1111 1011 4.3 上述方法算出来二进制补码, 可以直接记录在字节 4.4 有符号二进制补码中最左边数位叫做符号位, 符号位是0表示正, 1表示负, 且符号位不能等同与正负号 4.5...结果: ch = -56 num = -56 小伙伴们掌握了吗?一定要多多练习哦~这样二进制题目那是手到擒来! 问:下面结构体定义语句中,错误是( )。

2.3K71

什么?计算机居然不能精确计算0.1+0.2?

碰到什么不开心事了吗? 小云叹了口气:今天我写程序涉及小数计算,出了个bug,被测试的人笑了,说我居然0.1+02都不会算。 小帅忍不住笑了:0.1+0.2 =0.3 这你也能算错?...那我就重新给你讲讲,计算机是二进制世界,所有的数据都是二进制表示,例如:十进制5用二进制表示就是101, 计算过程如下: 小云:那十进制小数是怎么表示呢?...例如二进制101.11转换十进制如下: image.png 现在我们试着用二进制表示0.3看看,先找个比较接近二进制0.01 0.25太小了 那我们多加一位二进制数试试, 0.375太大了...)计算结果如下: python 也有Decimal类 直接计算同样有问题 image.png 用Decimal计算正确 JavaScript 没有Decimal,直接计算也同样有问题 js浮点数计算要先转换成整数...,然后在计算,最后转换回小数 最后,涉及浮点数计算,要特别小心,如果是不需要很精确计算直接运算就行,如果系统涉及金额计算,一定要用Decimal类或者放大成整数后计算,还有比较常见一种做法是,

44210

抓住数据小尾巴 - JS 浮点数陷阱及解法 camsong

本文帮你理清这背后原理以及解决方案,还会向你解释JS大数危机和四则运算中会遇到坑。 浮点数存储 首先要搞清楚 JavaScript 如何存储小数。...注意以上公式遵循科学计数法规范,在十进制 0<M<10,二进制就是 0<M<2。也就是说整数部分只能是1,所以可以被舍去,只保留后面的小数部分。...依次跳过更多2倍数 下面这张图能很好表示 JavaScript 浮点数和实数(Real Number)之间对应关系。...在浏览器正式支持前,可以使用 Babel 7.0 来实现,它内部是自动转换成 big-integer 来计算,这样能保持精度但运算效率会降低。...首先,理论上用有限空间来存储无限小数是不可能保证精确,但我们可以处理一下得到我们期望结果

2.4K40

多数编程语言里0.1+0.2≠0.3?

我最近在用JavaScript编程,正在阅读数据类型时候,我注意0.1+0.2不等于0.3奇怪现象。我求助于Stack Overflow并找到了几条有帮助信息,让我们来看一下: ? ?...这种格式以64位存储数字,其中数字(小数)存储在第051位,指数存储在第5262位,符号存储在第63位。 ? 让我们以IEEE754标准表示64位0.1。...第一步是将十进制0.1转换成等价二进制数。为此,我们先将0.1乘以2,然后将小数点前数字分开,以得到二进制等价值。 ?...在使两者指数相同之后将两者相加会得到: ? 当以浮点表示时,它将变为: ? 这就是0.1+0.2在计算机二进制表示。...把该二进制转换十进制小数,就得到了0.30000000000000004。 这就是隐藏在0.1 + 0.2 = 0.30000000000000004背后原因。

78220
领券