我有javascript代码,经常输出非常大的数字,我想完全显示,而不是得到一个值,如2.7934087356437704e+56我想它显示整数.是否有可能在JS中实现这一点?
例如Number.MAX_VALUE.toString()是"1.7976931348623157e+308"
我希望没有e+308,如何实现这一目标?
我目前正在通过 Euler 项目工作,目前我需要将一个 1000 位数字拆分为一个数组。
我试过这个:
var number = big number here;
var digits = number.toString().split('');
Run Code Online (Sandbox Code Playgroud)
它适用于小数字,但只要输入足够大,数组就会采用科学记数法,例如:
[ '1', '2', '3', '1', '2', '4', 'e', '+', '2', '2' ]
Run Code Online (Sandbox Code Playgroud)
有没有解决的办法?
提前致谢!
编辑:欧拉项目中的问题 8 需要(https://projecteuler.net/problem=8)
我正在调用JSON.parse()解析一个小小数的JSON字符串.
解析后不保持小数的精度.例如,3.1e-7返回一个值而不是实际的十进制数.
如何在保持小数精度的同时在ng2 +中反序列化JSON字符串?
UPDATE
我正在考虑从字符串中映射出值,然后在JSON.parse()之后手动将值设置为对象,但是当我将不同的小十进制数设置为属性值时,会出现相同的数字格式.那么这个问题不一定是JSON.parse()所特有的,而是一般的Javascript吗?或者JSON.parse()以某种方式以固定的方式配置属性类型?
我正在尝试解决一个在 codewars 上似乎很简单的 kata,但我似乎没有做对。
这个指令很简单,如下
给定两个整数的字符串表示,返回这些整数之和的字符串表示。
例如:
sumStrings('1','2') // => '3'
整数的字符串表示将不包含除“0”到“9”这十个数字之外的任何字符。
这就是我尝试过的
function sumStrings(a,b) {
return ((+a) + (+b)).toString();
}
Run Code Online (Sandbox Code Playgroud)
但结果解决了除两个之外的所有问题,这些是我得到的错误
sumStrings('712569312664357328695151392', '8100824045303269669937') - 预期:'712577413488402631964821329'74,而是 '574821329', got1204
sumStrings('50095301248058391139327916261', '81055900096023504197206408605') - 预期:'1311512013440818953248189532365'20009602365'2000960236518301836
我似乎不明白问题出在哪里。任何帮助都会有所帮助,谢谢。
随着.toFixed(2)我总是得到2位小数,即使数量为2.00
我可以得到“ 2”吗?
例: