Javascript 将字符串解析为十进制并保留十进制值
我需要将字符串解析为(2)个小数点 像这样: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 如果你想知道
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()
是合适的使用方法,因此将坚持使用:)非常感谢您的帮助