[英]Convert String to Number. Must always be NaN if conversion fails
以下字符串到數字的轉換,在 Typescript 中,返回結果:
console.log(+'20'); > 20
console.log(+'A'); > NaN
console.log(+' '); > 0
console.log(+''); > 0
如何確保任何數字無效的字符串返回 NaN 而不是 0。
我需要最后兩個返回 NaN 而不是默認數值。
更新
遵循一些建議,我嘗試了:
console.log('20.35'.trim() == '' ? NaN : +('20.35'.trim())); > 20.35
console.log('20'.trim() == '' ? NaN : +('20'.trim())); > 20
console.log('-1.75 '.trim() == '' ? NaN : +('-1.75 '.trim())); > -1.75
console.log(''.trim() == '' ? NaN : +(''.trim())); > NaN
console.log(' '.trim() == '' ? NaN : +(' '.trim())); > NaN
這按預期工作。 不確定這是否是最佳選擇,或者我是否遺漏了一些東西。
您可以使用parseInt(i)
或parseFloat(i)
。 請參閱: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
parseInt('10') === 10;
parseInt('A') === NaN;
parseInt(' ') === NaN;
parseInt('') === NaN;
parseFloat('10.20') === 10.2;
parseFloat('10') === 10;
試試這個方法
+'' == 0 ? NaN : 1 -> return NaN
+ ' ' ? NaN : 1 -> return 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.