字串轉數字後精度丟失問題

2021-10-06 11:26:50 字數 773 閱讀 9897

例如:

string a = "12.33";

string b = "11.66";

double aa = double.parsedouble(a);

double bb = double.parsedouble(b);

system.out.println("未轉換前:"+(bb+aa));

這段**輸出---未轉換前:23.990000000000002

用乙個類bigdecimal來操作,改動後

string a = "12.33";

string b = "11.66";

double aa = double.parsedouble(a);

double bb = double.parsedouble(b);

bigdecimal bdaa = new bigdecimal(aa);

double result = bdaa.add(new bigdecimal(bb)).setscale(2,bigdecimal.round_half_up).doublevalue();

system.out.println("轉換後:"+result);

結果輸出---轉換後:23.99

這樣就解決了轉換後精度丟失的問題

字串 字串轉數字

題目 將乙個字串轉換成數字。例如 123 123,71.02 71.02.方法一,直接呼叫庫函式atoi const char 和atof const char stoi string str include include int main 輸出結果 num int 435 num double ...

字串轉數字

注意進製,注意小數,負數,指數。小數跟指數比較繁瑣。應該對字串做限制,字串只是整數字串。否則,以下幾種情況都是會報錯 1.0x011.011,0b011.011都是錯誤的。2.0100.011實際上是十進位制的100.01。3.指數表示造成邏輯更多了。鑑於以上幾個情況考慮,為簡化,整數字串轉數字。草...

字串轉數字

看了劍指offer上面的第一道題,字串轉數字,就去查了下,有多種方法。比如可以直接用函式atoi 下面是我的 include include include include includeusing namespace std int main string a 100 int num 0 if a...