簡體   English   中英

將字符串轉換為數字。 如果轉換失敗,則必須始終為 NaN

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM