js中数字1.0000转成字符串'1.0000'?

默认是会去掉0的,怎么带上0?不能用fixed方法
需求是原来有多少位小数就多少位小数,不是用fixed去定几位小数,直接把数字改成字符串并保留小数位

阅读 6.5k
9 个回答

toFixed操作后类型就变成String了,无需再做转换
JavaScript toFixed() 方法

var tt = parseFloat(1.0000).toFixed(4);

目前来说,个人觉得题主的需求无法实现,因为你的需求是原来这个变量是number类型,要转成字符串类型,那么到不了第二步,第一步为number的时候它后面无意义的0就被自动省略了,所以你转类型也是转的1而不是1.0000

不过我会研究一下,尝试看看有没有什么其他途径满足这种需求

var a=1.0000;
console.log(a.toFixed(4).toString());

补充:楼主说不能用toFixed(),我觉得其实是做不到的。
你不用toFixed,用字符串去拼接也同样需要知道1.0000小数点后面有几个0
但如果原变量是一个number型,后面无意义的零是会被自动省略的。

请测试一下这行代码:

console.log(1.00000===1);//true

所以,如果你不知道小数点后的长度,而原来的值又不是字符串而是number,那么楼主的需求无法实现。

如果你需要保留后边那些可能是无意义的0,你一开始的时候就应该定义为字符串而不是number

let a = 1
a = a.toFixed(4)

let x = ''+ 1.0000;
不可以吗?

做不了没必要,有需要显示0.100的?

你能把1.0000保存到数字类型中而仍然有.0000?

问题不成立吧

var a = 1.0000;
console.log(a) //1

定义时候 自动会把拖尾的0 去掉了
所以不能通过Number数据类型来处理

这问题意义何在?考验如何装逼?

var arr = (1.0000 << 4).toString(2).split("");
arr.splice(1,0,".");
console.log(arr.join(""));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题