第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用指數(shù)表示法解析復(fù)數(shù) Java

使用指數(shù)表示法解析復(fù)數(shù) Java

慕桂英3389331 2023-11-01 20:59:30
嘗試從 csv 文件讀取一些復(fù)數(shù)。我有一個字符串并且正在嘗試ComplexFormat cf = new ComplexFormat(); cf.parse(entry)此代碼會導(dǎo)致以下錯誤org.apache.commons.math3.exception.MathParseException: illegal state: string "-7.5212e-06+3.4298e-06i" unparseable (from position 7) as an object of type org.apache.commons.math3.complex.Complex我假設(shè)我需要使用 NumberFormat 創(chuàng)建一個新的復(fù)雜格式,該格式允許指數(shù)表示法,因?yàn)閏f.getRealFormat().useExponentialNotation = false但是我不確定如何創(chuàng)建這樣的 NumberFormat。否則我正在考慮使用 Double.parseDouble 但這需要我考慮正確的正則表達(dá)式。
查看完整描述

1 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊

您的數(shù)據(jù)似乎包含帶小 e 的科學(xué)計(jì)數(shù)法。令人煩惱的是,該庫不會攔截,但簡單的替換會對您的情況有所幫助。


String entry = "-7.5212e-06+3.4298e-06i";

ComplexFormat cf = new ComplexFormat();

Complex c = cf.parse(entry.replace('e', 'E'));

System.out.println(c);

//(-0.075212, 0.034298)

但請注意,如果您使用默認(rèn)構(gòu)造函數(shù)(如上所述),您的數(shù)字將被正確解析,但科學(xué)記數(shù)法將不再保留。如果你想保留符號,請使用 DecimalFormat:


DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US);

DecimalFormat formatter = new DecimalFormat("##.####E0", symbols);

ComplexFormat cfWithE = new ComplexFormat(formatter);

Complex c2 = cfWithE.parse(entry.replace('e', 'E'));

System.out.println(c2);

//(-7.5212E-6, 3.4298E-6)


查看完整回答
反對 回復(fù) 2023-11-01
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號