Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法截断Javascript中的科学符号数字?_Javascript_Floating Point_Rounding_Scientific Notation_Rounding Error - Fatal编程技术网

有没有办法截断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"