JS:将带有尾随零的数字替换为科学记数法

Posted

技术标签:

【中文标题】JS:将带有尾随零的数字替换为科学记数法【英文标题】:JS: Replace a number with trailing zeros to scientific notation 【发布时间】:2017-11-04 18:22:46 【问题描述】:

我正在创建一个网站,该网站在 TI-BASIC(TI-83+/TI-84+ 计算器上的一种内置的、有点蹩脚的编程语言)中输入代码并尝试对其进行优化。

一种常见的优化是将 10000 替换为 1e4(更多示例:5500000 到 55e5,.0005 到 5e-3),其中 'e' 与科学的“*10^(”部分相同)符号。(我希望这是可以理解的)

如果有超过 3 个零,这只会节省空间(数字是 1 个字节,“e”标记是 2 个字节)所以我不想替换少于 4 个零的数字。

因为 TI 计算器只存储小数点前后的 14 位数字,所以我不必担心超过 14 位的数字。

我一直在使用 JS RegEx 来查找和替换网站上的所有其他优化,所以我正在尝试使用它来解决这个问题,但我不知道是否有更好的方法。

我并不是最缺乏 JS RegEx 经验的人,所以任何帮助(即使是朝着正确的方向推动)都是有用的。

感谢您的宝贵时间。

【问题讨论】:

注意,E-notation 不是科学指数表示法。 E-notation 是 javascript 语言的产物,见***.com/a/46517494Pitfalls with using scientific notation in JavaScript 是的,我知道。我指的是 TI-Basic 中使用的 E-Notation。它比使用数字稍慢,但通常更小。 【参考方案1】:

如有必要,您可以使用Number#toExponential 并去掉加号。

function sansPlus(s) 
    return s.replace('+', '');


console.log(sansPlus(10000..toExponential()));
console.log(0.00001.toExponential());

【讨论】:

谢谢!我不知道有这个功能。

以上是关于JS:将带有尾随零的数字替换为科学记数法的主要内容,如果未能解决你的问题,请参考以下文章

PHP 科学记数法缩短

R语言sprintf函数:sprintf函数格式化小数位数(数值数据前后整体占位个数)将数字输入与非数字输入组合起来控制科学计数法控制小数零的个数多输入数据的格式化

Python:带有上标指数的科学记数法

格式化double,printf中至少有一个小数

将十进制字符串 IP 掩码转换为带有尾随零的无符号整数

计算数字的归一化和工程科学记数法的最快算法