有没有办法截断Javascript中的科学符号数字?
大家都知道,因为这是一个被问得最多的话题,所以我有舍入错误的问题(我很清楚,这实际上不是错误)。 我不会解释我的观点,而是举一个例子,说明我有哪些可能的数字,以及我希望能够获得哪些输入: 比方说有没有办法截断Javascript中的科学符号数字?,javascript,floating-point,rounding,scientific-notation,rounding-error,Javascript,Floating Point,Rounding,Scientific Notation,Rounding Error,大家都知道,因为这是一个被问得最多的话题,所以我有舍入错误的问题(我很清楚,这实际上不是错误)。 我不会解释我的观点,而是举一个例子,说明我有哪些可能的数字,以及我希望能够获得哪些输入: 比方说 var a = 15 * 1e-9; alert(a) 输出 1.5000000000000002e-8 我希望能够得到1.5e-8,但我不能只乘以10e8,取整并除以10e8,因为我不知道它是e-8还是e-45或其他任何东西 因此,基本上我希望能够获得1.5000002部分,应用toFixed(3
var a = 15 * 1e-9;
alert(a)
输出
1.5000000000000002e-8
我希望能够得到1.5e-8
,但我不能只乘以10e8,取整并除以10e8,因为我不知道它是e-8还是e-45或其他任何东西
因此,基本上我希望能够获得1.5000002
部分,应用toFixed(3)
并返回指数部分
我可以转换成字符串并进行解析,但它似乎不正确
有什么想法吗
(如果您觉得这是众多重复问题中的一个,我提前表示歉意,但我找不到类似的问题,只有相关问题) Gael您可以使用以下方法:
如果你在做科学工作,并且需要在脑海中输入重要的数字:如文件所述,这会给你一个(typeof a==)“字符串”;非常适合输出。如果你想得到一个“数字”,你可以做
var b=1*a.toPrecision(2)代码>在计算过程中小心四舍五入。@史蒂芬,是的,或者<代码> var B= +A.TopRice(2);<代码>或<代码>变量b=数字(a.toPrecision(2))代码>不希望有一个简单的解决方案!下次我将更深入地研究文档!
var a = 15 * 1e-9;
a.toPrecision(2); // "1.5e-8"