Javascript 将字符串解析为十进制并保留十进制值

Javascript 将字符串解析为十进制并保留十进制值,javascript,Javascript,我需要将字符串解析为(2)个小数点 像这样: console.log("12345.6789"); // return 12345.67 我面临的问题是,如果小数是.00,则数字(小数)将被删除,而返回一个整数 console.log(parseFloat("123.00"))// return 123 // expected 123.00 console.log(parseFloat("123.01"))// return 123.01 // expected 123.01 如果你想知道

我需要将字符串解析为(2)个小数点

像这样:

console.log("12345.6789"); // return 12345.67
我面临的问题是,如果小数是
.00
,则数字(小数)将被删除,而返回一个整数

console.log(parseFloat("123.00"))// return 123  // expected 123.00
console.log(parseFloat("123.01"))// return 123.01 // expected 123.01
如果你想知道这件事为什么会发生?因为我需要提供数据,所以很容易扫描到人类

e、 g:下面的内容不好看,也不容易阅读(尤其是文本向右对齐时),我们进入了成千上万的行列

123.23
123,456.46
123
123,956.01
145
135.02
我需要这样: 123.23 123.46 123 123.01 145 135.02

此外,的
类型不应是字符串,而应是实际数字

123.00 // correct
"123.00"// incorrect // (I can use .tofixed() so this is not useful )

这不是你尝试的方式。你想要一根线。毋庸置疑,
3.00
3
相同,如果您将其保存为一个数字,则打印不会产生任何影响。您希望手动添加“0”,因此必须创建一个字符串。
.tofixed()非常适合此用途。如果打印内容,它将转换为字符串。

如果打印到控制台

console.log( (123).toFixed( 2 ) ); // outputs "123.00"
但是,输出周围的引号只是为了说明它是字符串这一事实。可以使用
.toFixed()

试试这个

如果值为文本类型:

 parseFloat("123.456").toFixed(2);
如果值为数字:

var numb = 123.23454;
numb = numb.toFixed(2);

就像其他人已经说过的那样,
toFixed()
函数将处理小数部分。
如果您还想添加千位分隔符以提高可读性,可以使用一个简单的正则表达式,如所述

var d = ...   // <-- this is a number
var str = d.toFixed(2)
           .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
           //  ^-- use this "replace()" to add thousand separators

var d=…//在Javascript中123==123.00,所以没有答案……对,我不确定,如果这是一个数据类型问题,那么更多的是一个脚本问题:)我认为,
.toFixed()
是合适的使用方法,因此将坚持使用:)非常感谢您的帮助