我刚开始编写JavaScript,正在尝试将两个值从字符串转换为数字,但是,我尝试执行以下方法,但似乎都无效。 示例:
const num = parseInt('100.00') // returns 100
const num = Number('100.00') // returns 100
const num = +'100.00'; // returns 100
我需要返回100.00,因为我去了其他似乎没有帮助的类似职位,感谢所有知识!
答案 0 :(得分:1)
在Javascript中,所有内容都是Number,它是双精度浮点64位数字(=十进制)。
100.00等于100,因此显示100。
答案 1 :(得分:1)
在我看来,您尝试过的所有方法都有效。
内部使用JavaScript stores all numbers using the floating point format。显示值时,它将使用所需的最小小数位数。
对于整数0
,这是100
。 100.00
仍为100
,在小数点后添加任意数量的0
不会改变其值。
推荐的解析看起来像数字的字符串的方法是使用Number.parseInt()
或Number.parseFloat()
。
parseFloat()
仅识别以基数10
写的数字,但是parseInt()
试图通过分析输入字符串的第一个字符来检测基数。它使用documentation page about numbers中描述的规则自动识别以2
,8
,10
和16
为基数的数字。这就是为什么建议始终将第二个参数传递给parseInt()
以避免任何歧义的原因。
关于您的关注,即使结尾数字为0
,也可以使用Number.toFixed()
强制使用一定数量的十进制数字来表示:
const num = parseInt('100.00');
console.log(num); // prints '100'
console.log(num.toFixed(2)); // prints '100.00'
答案 2 :(得分:1)
您的要求是不可能的,小数点100不能表示为数字100.00,您只能在toFixed
的帮助下将其表示为字符串。
var num = 100;
var strNum = num.toFixed(2); // in this case you have a string instead of a number
console.log(typeof num, num);
console.log(typeof strNum, strNum);